From 434cb3bd39c910dc64614324175a0bc8bb665d59 Mon Sep 17 00:00:00 2001 From: Gauvain Date: Tue, 16 Jun 2026 17:12:32 +0200 Subject: [PATCH 01/10] ci: ARM Android runners, slimmer APK artifacts, Renovate-pinned tool versions (#1733) --- .github/renovate.json | 10 ++- .github/workflows/artifact-comment.yml | 16 ++++- .github/workflows/build-apps.yml | 93 ++++++++++++++++--------- .github/workflows/check-lockfile.yml | 9 ++- .github/workflows/ci-codeql.yml | 5 +- .github/workflows/conflict.yml | 2 +- .github/workflows/crowdin.yml | 2 +- .github/workflows/detect-duplicate.yml | 5 +- .github/workflows/linting.yml | 21 +++--- .github/workflows/notification.yml | 4 +- .github/workflows/release.yml | 14 ++-- .github/workflows/trivy-scan.yml | 18 ++--- .github/workflows/update-issue-form.yml | 5 +- eas.json | 8 +-- scripts/ios/build-ios.ts | 6 +- 15 files changed, 135 insertions(+), 83 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index 45c62042..21c5b931 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -30,9 +30,17 @@ "customType": "regex", "managerFilePatterns": ["/\\.ya?ml$/"], "matchStrings": [ - "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: versioning=(?\\S+))?\\s+xcode-version:\\s*[\"']?(?[^\"'\\s]+)" + "# renovate: datasource=(?\\S+) depName=(?\\S+)(?: versioning=(?\\S+))?\\s+[A-Za-z0-9._-]+:\\s*[\"']?(?[^\"'\\s]+)" ], "versioningTemplate": "{{#if versioning}}{{{versioning}}}{{else}}loose{{/if}}" + }, + { + "customType": "regex", + "description": "Track the Bun version pinned in eas.json build profiles (strict JSON can't hold inline annotations)", + "managerFilePatterns": ["/(^|/)eas\\.json$/"], + "matchStrings": ["\"bun\"\\s*:\\s*\"(?[^\"]+)\""], + "datasourceTemplate": "npm", + "depNameTemplate": "bun" } ], "customDatasources": { diff --git a/.github/workflows/artifact-comment.yml b/.github/workflows/artifact-comment.yml index 72c7ff77..b81eeeaf 100644 --- a/.github/workflows/artifact-comment.yml +++ b/.github/workflows/artifact-comment.yml @@ -18,7 +18,7 @@ jobs: comment-artifacts: if: github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request' || (github.event_name == 'workflow_run' && github.event.workflow_run.event == 'pull_request') name: 📦 Post Build Artifacts - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 permissions: contents: read pull-requests: write @@ -451,6 +451,20 @@ jobs: commentBody += `- **Android APK**: Download and install directly on your device (enable "Install from unknown sources")\n`; commentBody += `- **iOS IPA**: Install using [AltStore](https://altstore.io/), [Sideloadly](https://sideloadly.io/), or Xcode\n\n`; commentBody += `> ⚠️ **Note**: Artifacts expire in 7 days from build date\n\n`; + + // Collapsible rundown of the build optimisations + what each + // artifact actually installs on, so testers grab the right file. + commentBody += `
\n`; + commentBody += `📦 Build details & device compatibility\n\n`; + commentBody += `These CI builds are trimmed for size and speed. What that means for installing them:\n\n`; + commentBody += `| Artifact | Architectures | Installs on |\n`; + commentBody += `|---|---|---|\n`; + commentBody += `| 🤖 Android Phone APK | \`arm64-v8a\` | Every 64-bit Android phone (all since ~2017). **Not** an x86_64 emulator or a 32-bit device. |\n`; + commentBody += `| 📺 Android TV APK | \`arm64-v8a\` + \`armeabi-v7a\` | Modern boxes **and** older / cheap 32-bit Android TV sticks. No x86_64. |\n`; + commentBody += `| 🍎 iOS / tvOS IPA | \`arm64\` | iPhone / Apple TV (all current devices). |\n\n`; + commentBody += `**Why no x86_64?** That slice only runs on Android emulators / Chromebooks, never a real phone or TV box — dropping it shrinks the APK and speeds up the build. Local \`bun run android\` is unaffected (it still builds x86_64 from \`app.json\`).\n\n`; + commentBody += `**Runners:** Android on \`ubuntu-26.04\`; iOS / tvOS on Apple Silicon (\`macos-26\`). The size/speed win comes from the ABI trim above, not the runner.\n`; + commentBody += `
\n\n`; } else { commentBody += `⏳ **Builds are starting up...** This comment will update automatically as each build completes.\n\n`; } diff --git a/.github/workflows/build-apps.yml b/.github/workflows/build-apps.yml index 0a27bac1..38f1dd23 100644 --- a/.github/workflows/build-apps.yml +++ b/.github/workflows/build-apps.yml @@ -23,7 +23,7 @@ env: jobs: build-android-phone: if: (!contains(github.event.head_commit.message, '[skip ci]')) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 name: 🤖 Build Android APK (Phone) permissions: contents: read @@ -52,31 +52,40 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 💾 Cache Bun dependencies uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ~/.bun/install/cache - key: ${{ runner.os }}-${{ runner.arch }}-bun-develop-${{ hashFiles('bun.lock') }} + key: ${{ runner.os }}-${{ runner.arch }}-bun-${{ hashFiles('bun.lock') }} restore-keys: | - ${{ runner.os }}-${{ runner.arch }}-bun-develop - ${{ runner.os }}-bun-develop + ${{ runner.os }}-${{ runner.arch }}-bun- - name: 📦 Install dependencies and reload submodules run: | bun install --frozen-lockfile bun run submodule-reload + - name: ☕ Set up JDK 17 + # ubuntu-26.04 defaults to JDK 25, which breaks the RN/AGP native build + # (Kotlin falls back to JVM_23, the foojay toolchain + CMake configure + # fail). Pin Temurin 17 for a deterministic Android build. + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 + with: + distribution: temurin + java-version: "17" + - name: 💾 Cache Gradle global uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: | - ~/.gradle/caches + ~/.gradle/caches/modules-2 ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + key: ${{ runner.os }}-${{ runner.arch }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | - ${{ runner.os }}-gradle- + ${{ runner.os }}-${{ runner.arch }}-gradle- - name: 🛠️ Generate project files run: bun run prebuild @@ -85,12 +94,16 @@ jobs: uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: android/.gradle - key: ${{ runner.os }}-android-gradle-develop-${{ hashFiles('android/**/build.gradle', 'android/gradle/wrapper/gradle-wrapper.properties') }} - restore-keys: ${{ runner.os }}-android-gradle-develop + key: ${{ runner.os }}-${{ runner.arch }}-android-gradle-develop-${{ hashFiles('android/**/build.gradle', 'android/gradle/wrapper/gradle-wrapper.properties') }} + restore-keys: ${{ runner.os }}-${{ runner.arch }}-android-gradle-develop - name: 🚀 Build APK env: EXPO_TV: 0 + # CI artifact ships arm64 only (phones; emulators/Chromebooks not a + # sideload target). Overrides app.json buildArchs for this build only, + # so local `bun run android` (x86_64 emulator) is unaffected. + ORG_GRADLE_PROJECT_reactNativeArchitectures: arm64-v8a run: bun run build:android:local - name: 📅 Set date tag @@ -106,7 +119,7 @@ jobs: build-android-tv: if: (!contains(github.event.head_commit.message, '[skip ci]')) - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 name: 🤖 Build Android APK (TV) permissions: contents: read @@ -135,31 +148,40 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 💾 Cache Bun dependencies uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ~/.bun/install/cache - key: ${{ runner.os }}-${{ runner.arch }}-bun-develop-${{ hashFiles('bun.lock') }} + key: ${{ runner.os }}-${{ runner.arch }}-bun-${{ hashFiles('bun.lock') }} restore-keys: | - ${{ runner.os }}-${{ runner.arch }}-bun-develop - ${{ runner.os }}-bun-develop + ${{ runner.os }}-${{ runner.arch }}-bun- - name: 📦 Install dependencies and reload submodules run: | bun install --frozen-lockfile bun run submodule-reload + - name: ☕ Set up JDK 17 + # ubuntu-26.04 defaults to JDK 25, which breaks the RN/AGP native build + # (Kotlin falls back to JVM_23, the foojay toolchain + CMake configure + # fail). Pin Temurin 17 for a deterministic Android build. + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 + with: + distribution: temurin + java-version: "17" + - name: 💾 Cache Gradle global uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: | - ~/.gradle/caches + ~/.gradle/caches/modules-2 ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + key: ${{ runner.os }}-${{ runner.arch }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | - ${{ runner.os }}-gradle- + ${{ runner.os }}-${{ runner.arch }}-gradle- - name: 🛠️ Generate project files run: bun run prebuild:tv @@ -168,12 +190,15 @@ jobs: uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: android/.gradle - key: ${{ runner.os }}-android-gradle-develop-${{ hashFiles('android/**/build.gradle', 'android/gradle/wrapper/gradle-wrapper.properties') }} - restore-keys: ${{ runner.os }}-android-gradle-develop + key: ${{ runner.os }}-${{ runner.arch }}-android-gradle-develop-${{ hashFiles('android/**/build.gradle', 'android/gradle/wrapper/gradle-wrapper.properties') }} + restore-keys: ${{ runner.os }}-${{ runner.arch }}-android-gradle-develop - name: 🚀 Build APK env: EXPO_TV: 1 + # TV artifact keeps armeabi-v7a too: many older/cheap Android TV boxes + # and sticks are still 32-bit ARM. Drops only x86_64. CI build only. + ORG_GRADLE_PROJECT_reactNativeArchitectures: arm64-v8a,armeabi-v7a run: bun run build:android:local - name: 📅 Set date tag @@ -206,15 +231,16 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 💾 Cache Bun dependencies uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ~/.bun/install/cache - key: ${{ runner.os }}-bun-cache-${{ hashFiles('bun.lock') }} + key: ${{ runner.os }}-${{ runner.arch }}-bun-${{ hashFiles('bun.lock') }} restore-keys: | - ${{ runner.os }}-bun-cache + ${{ runner.os }}-${{ runner.arch }}-bun- - name: 📦 Install dependencies and reload submodules run: | @@ -273,15 +299,16 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 💾 Cache Bun dependencies uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ~/.bun/install/cache - key: ${{ runner.os }}-bun-cache-${{ hashFiles('bun.lock') }} + key: ${{ runner.os }}-${{ runner.arch }}-bun-${{ hashFiles('bun.lock') }} restore-keys: | - ${{ runner.os }}-bun-cache + ${{ runner.os }}-${{ runner.arch }}-bun- - name: 📦 Install dependencies and reload submodules run: | @@ -335,15 +362,16 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 💾 Cache Bun dependencies uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ~/.bun/install/cache - key: ${{ runner.os }}-bun-cache-${{ hashFiles('bun.lock') }} + key: ${{ runner.os }}-${{ runner.arch }}-bun-${{ hashFiles('bun.lock') }} restore-keys: | - ${{ runner.os }}-bun-cache + ${{ runner.os }}-${{ runner.arch }}-bun- - name: 📦 Install dependencies and reload submodules run: | @@ -403,15 +431,16 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 💾 Cache Bun dependencies uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ~/.bun/install/cache - key: ${{ runner.os }}-bun-cache-${{ hashFiles('bun.lock') }} + key: ${{ runner.os }}-${{ runner.arch }}-bun-${{ hashFiles('bun.lock') }} restore-keys: | - ${{ runner.os }}-bun-cache + ${{ runner.os }}-${{ runner.arch }}-bun- - name: 📦 Install dependencies and reload submodules run: | diff --git a/.github/workflows/check-lockfile.yml b/.github/workflows/check-lockfile.yml index 0cb8afc3..efb5f221 100644 --- a/.github/workflows/check-lockfile.yml +++ b/.github/workflows/check-lockfile.yml @@ -13,7 +13,7 @@ concurrency: jobs: check-lockfile: name: 🔍 Check bun.lock and package.json consistency - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read @@ -29,14 +29,17 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 💾 Cache Bun dependencies uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: | ~/.bun/install/cache - key: ${{ runner.os }}-bun-${{ hashFiles('bun.lock') }} + key: ${{ runner.os }}-${{ runner.arch }}-bun-${{ hashFiles('bun.lock') }} + restore-keys: | + ${{ runner.os }}-${{ runner.arch }}-bun- - name: 🛡️ Verify lockfile consistency run: | diff --git a/.github/workflows/ci-codeql.yml b/.github/workflows/ci-codeql.yml index f79cf58a..b77665f5 100644 --- a/.github/workflows/ci-codeql.yml +++ b/.github/workflows/ci-codeql.yml @@ -8,11 +8,14 @@ on: schedule: - cron: '24 2 * * *' +concurrency: + group: codeql-${{ github.ref }} + cancel-in-progress: true jobs: analyze: name: 🔎 Analyze with CodeQL - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read security-events: write diff --git a/.github/workflows/conflict.yml b/.github/workflows/conflict.yml index de854ab6..125ad771 100644 --- a/.github/workflows/conflict.yml +++ b/.github/workflows/conflict.yml @@ -10,7 +10,7 @@ on: jobs: label: name: 🏷️ Labeling Merge Conflicts - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 if: ${{ github.repository == 'streamyfin/streamyfin' }} permissions: contents: read diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml index b0ea48a2..d3792502 100644 --- a/.github/workflows/crowdin.yml +++ b/.github/workflows/crowdin.yml @@ -19,7 +19,7 @@ permissions: jobs: sync-translations: - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 steps: - name: 📥 Checkout Repository diff --git a/.github/workflows/detect-duplicate.yml b/.github/workflows/detect-duplicate.yml index 265f9efe..26da4f57 100644 --- a/.github/workflows/detect-duplicate.yml +++ b/.github/workflows/detect-duplicate.yml @@ -15,7 +15,7 @@ jobs: detect: name: 🔍 Find similar issues if: github.actor != 'github-actions[bot]' - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: issues: write contents: read @@ -26,7 +26,8 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 🔍 Detect duplicate issues run: bun scripts/detect-duplicate-issue.mjs diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 8edb8916..d36da31f 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -15,7 +15,7 @@ jobs: validate_pr_title: name: "📝 Validate PR Title" if: github.event_name == 'pull_request' - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: pull-requests: write contents: read @@ -46,7 +46,7 @@ jobs: dependency-review: name: 🔍 Vulnerable Dependencies - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read steps: @@ -65,8 +65,7 @@ jobs: expo-doctor: name: 🚑 Expo Doctor Check - if: false - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 steps: - name: 🛒 Checkout repository uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 @@ -78,17 +77,21 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 📦 Install dependencies (bun) run: bun install --frozen-lockfile - name: 🚑 Run Expo Doctor + # Re-enabled but non-blocking: surfaces doctor warnings in the logs + # without failing the gate (some checks are known-noisy for this setup). + continue-on-error: true run: bun expo-doctor code_quality: name: "🔍 Lint & Test (${{ matrix.command }})" - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 strategy: fail-fast: false matrix: @@ -110,12 +113,14 @@ jobs: - name: "🟢 Setup Node.js" uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 with: - node-version: '24.x' + # renovate: datasource=node-version depName=node versioning=node + node-version: "24.16.0" - name: "🍞 Setup Bun" uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: "📦 Install dependencies" run: bun install --frozen-lockfile diff --git a/.github/workflows/notification.yml b/.github/workflows/notification.yml index cf0e4624..df9e4fa5 100644 --- a/.github/workflows/notification.yml +++ b/.github/workflows/notification.yml @@ -12,7 +12,7 @@ on: jobs: notify: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 if: github.event_name == 'pull_request' steps: - name: 🛎️ Notify Discord @@ -29,7 +29,7 @@ jobs: 🔗 ${{ github.event.pull_request.html_url }} notify-on-failure: - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 if: github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'failure' steps: - name: 🚨 Notify Discord on Failure diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c06e8b34..454f8645 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,8 +22,9 @@ on: jobs: approve: name: 🔐 Approve release - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 environment: production + permissions: {} steps: - name: ✅ Release approved run: echo "Release approved for ${{ github.sha }}" @@ -31,7 +32,7 @@ jobs: build: name: 🚀 ${{ matrix.name }} needs: approve - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read strategy: @@ -72,15 +73,16 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 💾 Cache Bun dependencies uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 with: path: ~/.bun/install/cache - key: ${{ runner.os }}-bun-cache-${{ hashFiles('bun.lock') }} + key: ${{ runner.os }}-${{ runner.arch }}-bun-${{ hashFiles('bun.lock') }} restore-keys: | - ${{ runner.os }}-bun-cache + ${{ runner.os }}-${{ runner.arch }}-bun- - name: 📦 Install dependencies and reload submodules run: | @@ -176,7 +178,7 @@ jobs: name: 📦 Draft GitHub Release needs: build if: ${{ !cancelled() }} - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: write actions: read # required for `gh run download` to list/fetch this run's artifacts diff --git a/.github/workflows/trivy-scan.yml b/.github/workflows/trivy-scan.yml index 4972e14f..2f02dcfc 100644 --- a/.github/workflows/trivy-scan.yml +++ b/.github/workflows/trivy-scan.yml @@ -21,7 +21,7 @@ concurrency: jobs: trivy: name: 🔎 Filesystem scan - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: read security-events: write # upload SARIF to code scanning @@ -29,19 +29,9 @@ jobs: - name: 📥 Checkout repository uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - # Rotate the DB cache weekly (matches the scheduled scan): cache hits within the week - # instead of a fresh immutable entry per run, still refreshing the DB every week. - - name: 🗓️ Compute weekly Trivy cache key - id: trivy-cache-key - run: echo "value=trivy-db-${{ runner.os }}-$(date -u +%G-%V)" >> "$GITHUB_OUTPUT" - - - name: 💾 Cache Trivy vulnerability DB - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5 - with: - path: ~/.cache/trivy - key: ${{ steps.trivy-cache-key.outputs.value }} - restore-keys: trivy-db-${{ runner.os }}- - + # Trivy's own action caches the vulnerability DB + binary internally + # (cache-trivy-* / trivy-binary-* entries), so no manual ~/.cache/trivy + # step is needed — it only duplicated the cache. - name: 🔎 Run Trivy filesystem scan uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25 # v0.36.0 with: diff --git a/.github/workflows/update-issue-form.yml b/.github/workflows/update-issue-form.yml index 8b5af9c8..0754735e 100644 --- a/.github/workflows/update-issue-form.yml +++ b/.github/workflows/update-issue-form.yml @@ -20,7 +20,7 @@ permissions: jobs: update-issue-form: name: 🔢 Populate version dropdown - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 permissions: contents: write pull-requests: write @@ -36,7 +36,8 @@ jobs: - name: 🍞 Setup Bun uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 with: - bun-version: latest + # renovate: datasource=npm depName=bun + bun-version: "1.3.14" - name: 🔢 Populate version dropdown from GitHub releases id: populate diff --git a/eas.json b/eas.json index f4099eda..23e28e82 100644 --- a/eas.json +++ b/eas.json @@ -52,7 +52,7 @@ } }, "production": { - "bun": "1.3.5", + "bun": "1.3.14", "environment": "production", "autoIncrement": true, "android": { @@ -64,7 +64,7 @@ } }, "production-apk": { - "bun": "1.3.5", + "bun": "1.3.14", "environment": "production", "autoIncrement": true, "android": { @@ -74,7 +74,7 @@ } }, "production-apk-tv": { - "bun": "1.3.5", + "bun": "1.3.14", "environment": "production", "autoIncrement": true, "android": { @@ -87,7 +87,7 @@ } }, "production_tv": { - "bun": "1.3.5", + "bun": "1.3.14", "environment": "production", "autoIncrement": true, "env": { diff --git a/scripts/ios/build-ios.ts b/scripts/ios/build-ios.ts index 33110507..f5592ae3 100644 --- a/scripts/ios/build-ios.ts +++ b/scripts/ios/build-ios.ts @@ -302,7 +302,7 @@ function parseArgs(argv: string[]): BuildOptions { if (!configArg) { throw new Error("--configuration requires an argument"); } - options.configuration = (configArg as "Debug" | "Release") || "Debug"; + options.configuration = configArg as "Debug" | "Release"; break; } case "--device": @@ -997,10 +997,6 @@ async function waitForSimulatorBoot( } } catch { // Simulator not found or not booted yet, continue polling - if (pollIntervalMs > 1000) { - // Only log if we've been waiting a while to avoid spam - // console.warn("Simulator polling failed, retrying..."); - } } // Wait before next poll From 335f1efb2cf48ca51db619a1676af8378f012ce5 Mon Sep 17 00:00:00 2001 From: Gauvain Date: Tue, 16 Jun 2026 20:28:02 +0200 Subject: [PATCH 02/10] chore(deps): upgrade TypeScript to 6.0.3 and align Expo SDK 56 packages (#1719) --- app.json | 3 + bun.lock | 139 +++++++++++++++++++------------------------ package.json | 40 +++++++------ scripts/typecheck.js | 11 +++- tsconfig.json | 2 + 5 files changed, 98 insertions(+), 97 deletions(-) diff --git a/app.json b/app.json index 296d674d..e7095490 100644 --- a/app.json +++ b/app.json @@ -107,6 +107,9 @@ ], "expo-localization", "expo-asset", + "expo-audio", + "expo-image", + "expo-sharing", [ "react-native-edge-to-edge", { diff --git a/bun.lock b/bun.lock index 97ba4fa2..e9482718 100644 --- a/bun.lock +++ b/bun.lock @@ -7,9 +7,9 @@ "dependencies": { "@bottom-tabs/react-navigation": "1.2.0", "@douglowder/expo-av-route-picker-view": "^0.0.5", - "@expo/metro-runtime": "~56.0.13", + "@expo/metro-runtime": "~56.0.15", "@expo/react-native-action-sheet": "^4.1.1", - "@expo/ui": "~56.0.14", + "@expo/ui": "~56.0.17", "@expo/vector-icons": "^15.0.3", "@gorhom/bottom-sheet": "5.2.14", "@jellyfin/sdk": "^0.13.0", @@ -22,35 +22,35 @@ "@tanstack/react-query": "5.100.14", "@tanstack/react-query-persist-client": "^5.100.14", "axios": "^1.7.9", - "expo": "~56.0.6", + "expo": "~56.0.11", "expo-application": "~56.0.3", - "expo-asset": "~56.0.15", - "expo-audio": "~56.0.11", - "expo-background-task": "~56.0.15", + "expo-asset": "~56.0.17", + "expo-audio": "~56.0.12", + "expo-background-task": "~56.0.18", "expo-blur": "~56.0.3", "expo-brightness": "~56.0.5", - "expo-build-properties": "~56.0.15", - "expo-camera": "~56.0.7", - "expo-constants": "~56.0.16", + "expo-build-properties": "~56.0.18", + "expo-camera": "~56.0.8", + "expo-constants": "~56.0.18", "expo-crypto": "~56.0.4", - "expo-dev-client": "~56.0.16", + "expo-dev-client": "~56.0.20", "expo-device": "~56.0.4", - "expo-font": "~56.0.5", + "expo-font": "~56.0.6", "expo-haptics": "~56.0.3", - "expo-image": "~56.0.9", + "expo-image": "~56.0.11", "expo-linear-gradient": "~56.0.4", - "expo-linking": "~56.0.12", + "expo-linking": "~56.0.14", "expo-localization": "~56.0.6", - "expo-location": "~56.0.14", - "expo-notifications": "~56.0.14", - "expo-router": "~56.2.7", + "expo-location": "~56.0.17", + "expo-notifications": "~56.0.17", + "expo-router": "~56.2.10", "expo-screen-orientation": "~56.0.5", "expo-secure-store": "~56.0.4", - "expo-sharing": "~56.0.14", + "expo-sharing": "~56.0.17", "expo-splash-screen": "~56.0.10", "expo-status-bar": "~56.0.4", "expo-system-ui": "~56.0.5", - "expo-task-manager": "~56.0.15", + "expo-task-manager": "~56.0.18", "expo-web-browser": "~56.0.5", "i18next": "^26.3.0", "jotai": "2.20.0", @@ -105,6 +105,7 @@ "@react-native-tvos/config-tv": "0.1.6", "@types/jest": "29.5.14", "@types/lodash": "4.17.24", + "@types/node": "^18.19.130", "@types/react": "~19.2.10", "@types/react-test-renderer": "19.1.0", "cross-env": "10.1.0", @@ -112,7 +113,7 @@ "husky": "9.1.7", "lint-staged": "17.0.5", "react-test-renderer": "19.2.3", - "typescript": "5.9.3", + "typescript": "6.0.3", }, }, }, @@ -295,7 +296,7 @@ "@expo-google-fonts/material-symbols": ["@expo-google-fonts/material-symbols@0.4.38", "", {}, "sha512-IJkBtN1o8u9BW5fvSii1MyHPQ7Q0HxbWcVBvOrOzgMLpVtZw7R2w94wBTVR7kZwv3w1JNTESMmLA5Sqn1+Z36A=="], - "@expo/cli": ["@expo/cli@56.1.12", "", { "dependencies": { "@expo/code-signing-certificates": "^0.0.6", "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.8", "@expo/devcert": "^1.2.1", "@expo/env": "~2.3.0", "@expo/image-utils": "^0.10.1", "@expo/inline-modules": "^0.0.10", "@expo/json-file": "^10.2.0", "@expo/log-box": "^56.0.12", "@expo/metro": "~56.0.0", "@expo/metro-config": "~56.0.13", "@expo/metro-file-map": "^56.0.3", "@expo/osascript": "^2.6.0", "@expo/package-manager": "^1.12.0", "@expo/plist": "^0.7.0", "@expo/prebuild-config": "^56.0.13", "@expo/require-utils": "^56.1.3", "@expo/router-server": "^56.0.12", "@expo/schema-utils": "^56.0.0", "@expo/spawn-async": "^1.8.0", "@expo/ws-tunnel": "^1.0.1", "@expo/xcpretty": "^4.4.4", "@react-native/dev-middleware": "0.85.3", "accepts": "^1.3.8", "arg": "^5.0.2", "bplist-creator": "0.1.0", "bplist-parser": "^0.3.1", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "dnssd-advertise": "^1.1.4", "expo-server": "^56.0.4", "fetch-nodeshim": "^0.4.10", "getenv": "^2.0.0", "glob": "^13.0.0", "lan-network": "^0.2.1", "multitars": "^1.0.0", "node-forge": "^1.3.3", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^4.0.4", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "resolve-from": "^5.0.0", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "terminal-link": "^2.1.1", "toqr": "^0.1.1", "wrap-ansi": "^7.0.0", "ws": "^8.12.1", "zod": "^3.25.76" }, "peerDependencies": { "expo": "*", "expo-router": "*", "react-native": "*" }, "optionalPeers": ["expo-router", "react-native"], "bin": { "expo-internal": "main.js" } }, "sha512-Ya/13E1yDx1oAuPw5MDmqzIGyzwSs7KSr1EjgSObOF0VO0GD9jqJjvjOiwurjScLUfxcGZQgq23UzMlBVHwdvA=="], + "@expo/cli": ["@expo/cli@56.1.15", "", { "dependencies": { "@expo/code-signing-certificates": "^0.0.6", "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.8", "@expo/devcert": "^1.2.1", "@expo/env": "~2.3.0", "@expo/image-utils": "^0.10.1", "@expo/inline-modules": "^0.0.11", "@expo/json-file": "^10.2.0", "@expo/log-box": "^56.0.13", "@expo/metro": "~56.0.0", "@expo/metro-config": "~56.0.14", "@expo/metro-file-map": "^56.0.3", "@expo/osascript": "^2.6.0", "@expo/package-manager": "^1.12.1", "@expo/plist": "^0.7.0", "@expo/prebuild-config": "^56.0.15", "@expo/require-utils": "^56.1.3", "@expo/router-server": "^56.0.13", "@expo/schema-utils": "^56.0.0", "@expo/spawn-async": "^1.8.0", "@expo/ws-tunnel": "^2.0.0", "@expo/xcpretty": "^4.4.4", "@react-native/dev-middleware": "0.85.3", "accepts": "^1.3.8", "arg": "^5.0.2", "bplist-creator": "0.1.0", "bplist-parser": "^0.3.1", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "dnssd-advertise": "^1.1.4", "expo-server": "^56.0.5", "fetch-nodeshim": "^0.4.10", "getenv": "^2.0.0", "glob": "^13.0.0", "lan-network": "^0.2.1", "multitars": "^1.0.0", "node-forge": "^1.3.3", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^4.0.4", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "resolve-from": "^5.0.0", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "terminal-link": "^2.1.1", "toqr": "^0.1.1", "wrap-ansi": "^7.0.0", "ws": "^8.12.1", "zod": "^3.25.76" }, "peerDependencies": { "expo": "*", "expo-router": "*", "react-native": "*" }, "optionalPeers": ["expo-router", "react-native"], "bin": { "expo-internal": "main.js" } }, "sha512-ik6++YzURB2d/mSEfYwbuNa19uOWZwVHy9THCQ/pPr6mzplKl4w9I4nlYF9lx7oluNC3NvxsSZ8/rgpVKEOJTA=="], "@expo/code-signing-certificates": ["@expo/code-signing-certificates@0.0.6", "", { "dependencies": { "node-forge": "^1.3.3" } }, "sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w=="], @@ -313,41 +314,41 @@ "@expo/env": ["@expo/env@2.3.0", "", { "dependencies": { "chalk": "^4.0.0", "debug": "^4.3.4", "getenv": "^2.0.0" } }, "sha512-9HnnIbzwTTdbwSjNLXTk0fPm9ZwMJ7c1/31tsni8HZ8Q62KzYCyspahH+V365vg5J6lr001DzNwBxVWSaYCQLg=="], - "@expo/expo-modules-macros-plugin": ["@expo/expo-modules-macros-plugin@0.0.9", "", {}, "sha512-odai6D7ng/gA7At8ukFcWcauNEeDdyVqzVPbQxDkyU2NTJ4kgphA4I5iigS5C4LXFicSIzEt2nzdlLM8sjsTdA=="], + "@expo/expo-modules-macros-plugin": ["@expo/expo-modules-macros-plugin@0.2.2", "", {}, "sha512-4IMzPDIo/VOXREQjsJtliSfqYVZvfzU2SLFS/9sKMWF848S8CHx+e/E+Vf0TcMvpWCCKX5umyqxb13KJJ+YUzg=="], - "@expo/fingerprint": ["@expo/fingerprint@0.19.3", "", { "dependencies": { "@expo/env": "^2.3.0", "@expo/spawn-async": "^1.8.0", "arg": "^5.0.2", "chalk": "^4.1.2", "debug": "^4.3.4", "getenv": "^2.0.0", "glob": "^13.0.0", "ignore": "^5.3.1", "minimatch": "^10.2.2", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "bin": { "fingerprint": "bin/cli.js" } }, "sha512-w9Au2IVrtc0Ct+WRa05DVHGNHXYq6VyPZWuFP+5x055OeZ5q6k5Yg+aJ1gfShmjdOhDftRcsvmWmTdTZlWaTZw=="], + "@expo/fingerprint": ["@expo/fingerprint@0.19.4", "", { "dependencies": { "@expo/env": "^2.3.0", "@expo/spawn-async": "^1.8.0", "arg": "^5.0.2", "chalk": "^4.1.2", "debug": "^4.3.4", "getenv": "^2.0.0", "glob": "^13.0.0", "ignore": "^5.3.1", "minimatch": "^10.2.2", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "bin": { "fingerprint": "bin/cli.js" } }, "sha512-PsowRlO8+S7JlO8go7yhNEXp7sqlsWDE2AlCwoss7zH0dcajXFo74Fy0KdXEc4UXK7kKoHD37oDgsZ8aHSLr7A=="], "@expo/image-utils": ["@expo/image-utils@0.10.1", "", { "dependencies": { "@expo/require-utils": "^56.1.3", "@expo/spawn-async": "^1.8.0", "chalk": "^4.0.0", "getenv": "^2.0.0", "jimp-compact": "0.16.1", "parse-png": "^2.1.0", "semver": "^7.6.0" } }, "sha512-YDeefvmYdihS7Wp3ESDUVnOgOSWmj2Cczm9lVNDdm4MqQLdAKm/LPYg83HtFQPfefRlAxyHrQR/O9kIXN9C1Wg=="], - "@expo/inline-modules": ["@expo/inline-modules@0.0.10", "", { "dependencies": { "@expo/config-plugins": "~56.0.8" } }, "sha512-DKEfq877UTAmL/gOT5aFhlLNDg/EVmTSca7JQMKDGR6mjFSAcrmQf4GJNsi6ztiaqj6cTnIfoSz0hAYdnr6RJQ=="], + "@expo/inline-modules": ["@expo/inline-modules@0.0.11", "", { "dependencies": { "@expo/config-plugins": "~56.0.8" } }, "sha512-ZlIfKL61DPnW8YUTdMEjMA31xrDDV6p7Xi8rWYyhd5qXBV8MwGwjuJ7vKeaVaMjRqxJk1N9lv7zlfyvQpRCNNw=="], "@expo/json-file": ["@expo/json-file@10.2.0", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "json5": "^2.2.3" } }, "sha512-S6XzKe3R9GQeHiUPXc3xJjOv2VJhOEwFYf7xdC2z2cUqt3kZJ9mSO877sNQloVdnW/SUCtPY3bexlM7nwq+CAQ=="], "@expo/local-build-cache-provider": ["@expo/local-build-cache-provider@56.0.8", "", { "dependencies": { "@expo/config": "~56.0.9", "chalk": "^4.1.2" } }, "sha512-UsuXwpNi57MNhzZ3be4XThc8xW6nzk3Wu37s1+2qcfZGeJcMLKDFfwO6n8YXeIiGlCsOi0Ee1rsTdgjrKt/YJQ=="], - "@expo/log-box": ["@expo/log-box@56.0.12", "", { "dependencies": { "@expo/dom-webview": "^56.0.5", "anser": "^1.4.9", "stacktrace-parser": "^0.1.10" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-budE6AGmJbpOJfGSOz+JVP3+FevElT82IEIg+ukQ4gZpW/dGO7QX1unFjanKdSaYgudBwJ4FCFGMwWhW/1tXVQ=="], + "@expo/log-box": ["@expo/log-box@56.0.13", "", { "dependencies": { "@expo/dom-webview": "^56.0.5", "anser": "^1.4.9", "stacktrace-parser": "^0.1.10" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-QWRZSpWPyjkDLVQio4R7oAzg/Av2MOt/DciFkfjr8qQ3qxGVn1Rt1oHP/80hvcWDcHFV7N6PqpyxRXw6nbxzKQ=="], "@expo/metro": ["@expo/metro@56.0.0", "", { "dependencies": { "metro": "0.84.4", "metro-babel-transformer": "0.84.4", "metro-cache": "0.84.4", "metro-cache-key": "0.84.4", "metro-config": "0.84.4", "metro-core": "0.84.4", "metro-file-map": "0.84.4", "metro-minify-terser": "0.84.4", "metro-resolver": "0.84.4", "metro-runtime": "0.84.4", "metro-source-map": "0.84.4", "metro-symbolicate": "0.84.4", "metro-transform-plugins": "0.84.4", "metro-transform-worker": "0.84.4" } }, "sha512-5gIgQHtEpjjvsjKfVtIv23a98LLRV0/y07PDShEwYSytAMlE3FSF8RHXqtHc1sUJL6dn7hnuIBpIbrLXXuVi0A=="], - "@expo/metro-config": ["@expo/metro-config@56.0.13", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@expo/config": "~56.0.9", "@expo/env": "~2.3.0", "@expo/json-file": "~10.2.0", "@expo/metro": "~56.0.0", "@expo/require-utils": "^56.1.3", "@expo/spawn-async": "^1.8.0", "@jridgewell/gen-mapping": "^0.3.13", "@jridgewell/remapping": "^2.3.5", "@jridgewell/sourcemap-codec": "^1.5.5", "browserslist": "^4.25.0", "chalk": "^4.1.0", "debug": "^4.3.2", "getenv": "^2.0.0", "glob": "^13.0.0", "hermes-parser": "^0.33.3", "jsc-safe-url": "^0.2.4", "lightningcss": "^1.30.1", "msgpackr": "^2.0.1", "picomatch": "^4.0.4", "postcss": "^8.5.14", "resolve-from": "^5.0.0" }, "peerDependencies": { "expo": "*" }, "optionalPeers": ["expo"] }, "sha512-OPyNYiex/6Ms8zT2POdIZsLhcAZYk7O+yJvpz5uG/4QRA7aiESfCy1I+0YHewMlR4P1YQeyxIrfTurs6m9xfZA=="], + "@expo/metro-config": ["@expo/metro-config@56.0.14", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "@babel/core": "^7.20.0", "@babel/generator": "^7.20.5", "@expo/config": "~56.0.9", "@expo/env": "~2.3.0", "@expo/json-file": "~10.2.0", "@expo/metro": "~56.0.0", "@expo/require-utils": "^56.1.3", "@expo/spawn-async": "^1.8.0", "@jridgewell/gen-mapping": "^0.3.13", "@jridgewell/remapping": "^2.3.5", "@jridgewell/sourcemap-codec": "^1.5.5", "browserslist": "^4.25.0", "chalk": "^4.1.0", "debug": "^4.3.2", "getenv": "^2.0.0", "glob": "^13.0.0", "hermes-parser": "^0.33.3", "jsc-safe-url": "^0.2.4", "lightningcss": "^1.30.1", "picomatch": "^4.0.4", "postcss": "^8.5.14", "resolve-from": "^5.0.0" }, "peerDependencies": { "expo": "*" }, "optionalPeers": ["expo"] }, "sha512-O3CIHruaTJhswPAf/nf3i8QQ3f2jl+mEwSea1eb3khuplabdy/wTQz+JvHN8VGUFyg7JKwUGU1QfO6T3JiSQqA=="], "@expo/metro-file-map": ["@expo/metro-file-map@56.0.3", "", { "dependencies": { "debug": "^4.3.4", "fb-watchman": "^2.0.2", "invariant": "^2.2.4", "jest-worker": "^29.7.0", "micromatch": "^4.0.4", "walker": "^1.0.8" } }, "sha512-5OGW3z8LgEYgMJOR7F3pC8llFLkb1fVqwAewbCl6S4Vkha8AFQMwOjT+9Wbka+V4rmpljpGqOnMhF4xZbD961w=="], - "@expo/metro-runtime": ["@expo/metro-runtime@56.0.13", "", { "dependencies": { "@expo/log-box": "^56.0.12", "anser": "^1.4.9", "pretty-format": "^29.7.0", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-dom": "*", "react-native": "*" }, "optionalPeers": ["react-dom"] }, "sha512-aMaFa/RPYm2iQoyYOB5q8AxDmWvf4E2yFbZ6rmBIQWaIPDdixGVUlLQeV8DlDAfZ/j+pNYO7l5M+774WbgkTgg=="], + "@expo/metro-runtime": ["@expo/metro-runtime@56.0.15", "", { "dependencies": { "@expo/log-box": "^56.0.13", "anser": "^1.4.9", "pretty-format": "^29.7.0", "stacktrace-parser": "^0.1.10", "whatwg-fetch": "^3.0.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-dom": "*", "react-native": "*" }, "optionalPeers": ["react-dom"] }, "sha512-WIWeVsL6kCSB57oYZdUA4MTkH7c67UFMIjdNoQzKXwxZYwBFE/xL2cGPDC3z8RWt0femzJTVxAVZUOW/hiqRzA=="], "@expo/osascript": ["@expo/osascript@2.6.0", "", { "dependencies": { "@expo/spawn-async": "^1.8.0" } }, "sha512-QvqDBlJXa8CS2vRORJ4wEflY1m0vVI07uSJdIRgBrLxRPBcsrXxrtU7+wXRXMqfq9zLwNP9XbvRsXF2omoDylg=="], - "@expo/package-manager": ["@expo/package-manager@1.12.0", "", { "dependencies": { "@expo/json-file": "^10.2.0", "@expo/spawn-async": "^1.8.0", "chalk": "^4.0.0", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "resolve-workspace-root": "^2.0.0" } }, "sha512-SWr6093nwBjn94cvElsYZNUnhvs+XtUatUz3h0vAn0IbaWG0B6l/V5ZfOBptX/xq6rMpFG5ibIf/eckLSXw8Gg=="], + "@expo/package-manager": ["@expo/package-manager@1.12.1", "", { "dependencies": { "@expo/json-file": "^10.2.0", "@expo/spawn-async": "^1.8.0", "chalk": "^4.0.0", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "resolve-workspace-root": "^2.0.0" } }, "sha512-fQLiFAcFRWF53mtuLK32SUJQ1ahhrTcBZPZPedYTiUT5ha5FF+UO6bPtCc0Y/hgj0/m3HCGBAuSHjbg2kI9oPQ=="], "@expo/plist": ["@expo/plist@0.7.0", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, "sha512-vrpryU1GoqSIRNqRB2D3IjXDmzNYfiQpEF6AH/xknlD7eiYmEDt3mb26V7cLcedcPG8PY/1xWHdBXVQJfEAh6Q=="], - "@expo/prebuild-config": ["@expo/prebuild-config@56.0.13", "", { "dependencies": { "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.8", "@expo/config-types": "^56.0.5", "@expo/image-utils": "^0.10.1", "@expo/json-file": "^10.2.0", "@react-native/normalize-colors": "0.85.3", "debug": "^4.3.1", "expo-modules-autolinking": "~56.0.13", "resolve-from": "^5.0.0", "semver": "^7.6.0" } }, "sha512-caR1karpDasbNmM+LrcHKZrSnyEYdmxm7kedq+WjiuZg+9XAW5sbEjojo2i9Dq6cfbDJPyr7I0yEprLabnvmpA=="], + "@expo/prebuild-config": ["@expo/prebuild-config@56.0.15", "", { "dependencies": { "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.8", "@expo/config-types": "^56.0.5", "@expo/image-utils": "^0.10.1", "@expo/json-file": "^10.2.0", "@react-native/normalize-colors": "0.85.3", "debug": "^4.3.1", "expo-modules-autolinking": "~56.0.15", "resolve-from": "^5.0.0", "semver": "^7.6.0" } }, "sha512-6GC+QjdCkzp/5wjsqgfu/B2+2yf5MyZMtzf9szIPrLt9uKhzV2PdyM0vU0kvbj1YT8weHCtO7bsrzimman0sjA=="], "@expo/react-native-action-sheet": ["@expo/react-native-action-sheet@4.1.1", "", { "dependencies": { "@types/hoist-non-react-statics": "^3.3.1", "hoist-non-react-statics": "^3.3.0" }, "peerDependencies": { "react": ">=18.0.0" } }, "sha512-4KRaba2vhqDRR7ObBj6nrD5uJw8ePoNHdIOMETTpgGTX7StUbrF4j/sfrP1YUyaPEa1P8FXdwG6pB+2WtrJd1A=="], "@expo/require-utils": ["@expo/require-utils@56.1.3", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "@babel/core": "^7.25.2", "@babel/plugin-transform-modules-commonjs": "^7.24.8" }, "peerDependencies": { "typescript": "^5.0.0 || ^5.0.0-0 || ^6.0.0" }, "optionalPeers": ["typescript"] }, "sha512-KyLeOn/zzQSvuPpV5YhB/FPKnpQytno4luN918bGdPDssLBoS3N/0UbC3W0rJAn9kSFu+XpfR81eABRVsSdfgQ=="], - "@expo/router-server": ["@expo/router-server@56.0.12", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "@expo/metro-runtime": "^56.0.13", "expo": "*", "expo-constants": "^56.0.16", "expo-font": "^56.0.5", "expo-router": "*", "expo-server": "^56.0.4", "react": "*", "react-dom": "*", "react-server-dom-webpack": "~19.0.1 || ~19.1.2 || ~19.2.1" }, "optionalPeers": ["@expo/metro-runtime", "expo-router", "react-dom", "react-server-dom-webpack"] }, "sha512-RqKV2/Z8BH/z8l0ngSpG6//5xxJPaF5dTQvSfPQ0nrvCjikGMeIvyj3B9BeLnmZZhxb3gBtXqrj3irAoiIp2aQ=="], + "@expo/router-server": ["@expo/router-server@56.0.14", "", { "dependencies": { "debug": "^4.3.4" }, "peerDependencies": { "@expo/metro-runtime": "^56.0.15", "expo": "*", "expo-constants": "^56.0.18", "expo-font": "^56.0.6", "expo-router": "*", "expo-server": "^56.0.5", "react": "*", "react-dom": "*", "react-server-dom-webpack": "~19.0.1 || ~19.1.2 || ~19.2.1" }, "optionalPeers": ["@expo/metro-runtime", "expo-router", "react-dom", "react-server-dom-webpack"] }, "sha512-2UCTtZfcq1ZPgp3wk8/+sq9DvFI9UxrPr1jcEKMAF2DGAJLosnpc8GWNNg2hkjt6SHUOdFHIPxujWPYyho2y3A=="], "@expo/schema-utils": ["@expo/schema-utils@56.0.1", "", {}, "sha512-CZ/+mYbQmWeOnkCGlWy9K+lFxbJSMFY7+TqBZcKzBSTU5Q7IGRvn/sOG3TdNjIdLPmbA8xe7R/c3UUQ28R9i9w=="], @@ -357,11 +358,11 @@ "@expo/sudo-prompt": ["@expo/sudo-prompt@9.3.2", "", {}, "sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw=="], - "@expo/ui": ["@expo/ui@56.0.14", "", { "dependencies": { "sf-symbols-typescript": "^2.1.0", "vaul": "^1.1.2" }, "peerDependencies": { "@babel/core": "*", "expo": "*", "react": "*", "react-dom": "*", "react-native": "*", "react-native-reanimated": "*", "react-native-worklets": "*" }, "optionalPeers": ["@babel/core", "react-dom", "react-native-reanimated", "react-native-worklets"] }, "sha512-0Wr8nsvk2C+BmhmZDQzYr/hxxddHK+ajuJ7ahacUvxt+gQnEXwbueTm0S/hk/54YGASEgplrPGDuR5zzcY+IZg=="], + "@expo/ui": ["@expo/ui@56.0.17", "", { "dependencies": { "sf-symbols-typescript": "^2.1.0", "vaul": "^1.1.2" }, "peerDependencies": { "@babel/core": "*", "expo": "*", "react": "*", "react-dom": "*", "react-native": "*", "react-native-reanimated": "*", "react-native-worklets": "*" }, "optionalPeers": ["@babel/core", "react-dom", "react-native-reanimated", "react-native-worklets"] }, "sha512-Jos9oGzurMDngrSWJesX3LSykPRvkUdANxtq2sPKBc6bAjadtZJCkthAYMaE3P9L5xrzbNRFo+2O76cRP0iYPw=="], "@expo/vector-icons": ["@expo/vector-icons@15.1.1", "", { "peerDependencies": { "expo-font": ">=14.0.4", "react": "*", "react-native": "*" } }, "sha512-Iu2VkcoI5vygbtYngm7jb4ifxElNVXQYdDrYkT7UCEIiKLeWnQY0wf2ZhHZ+Wro6Sc5TaumpKUOqDRpLi5rkvw=="], - "@expo/ws-tunnel": ["@expo/ws-tunnel@1.0.6", "", {}, "sha512-nDRbLmSrJar7abvUjp3smDwH8HcbZcoOEa5jVPUv9/9CajgmWw20JNRwTuBRzWIWIkEJDkz20GoNA+tSwUqk0Q=="], + "@expo/ws-tunnel": ["@expo/ws-tunnel@2.0.0", "", { "peerDependencies": { "ws": "^8.0.0" } }, "sha512-j+JfTRdCk820J9dU0sA2SqshQIKFOMo7ED84w9MJFcebfbNQgsLztEY/SABDkGnjatrW4xGqnUhVRxSBVyCkXw=="], "@expo/xcpretty": ["@expo/xcpretty@4.4.4", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "chalk": "^4.1.0", "js-yaml": "^4.1.0" }, "bin": { "excpretty": "build/cli.js" } }, "sha512-4aQzz9vgxcNXFfo/iyNgDDYfsU5XGKKxWxZopw0cVotHiW+U8IJbIxMaxsINs6bHhtkG3StKNPcOrn3eBuxKPw=="], @@ -417,18 +418,6 @@ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - "@msgpackr-extract/msgpackr-extract-darwin-arm64": ["@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ=="], - - "@msgpackr-extract/msgpackr-extract-darwin-x64": ["@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w=="], - - "@msgpackr-extract/msgpackr-extract-linux-arm": ["@msgpackr-extract/msgpackr-extract-linux-arm@3.0.4", "", { "os": "linux", "cpu": "arm" }, "sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw=="], - - "@msgpackr-extract/msgpackr-extract-linux-arm64": ["@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw=="], - - "@msgpackr-extract/msgpackr-extract-linux-x64": ["@msgpackr-extract/msgpackr-extract-linux-x64@3.0.4", "", { "os": "linux", "cpu": "x64" }, "sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ=="], - - "@msgpackr-extract/msgpackr-extract-win32-x64": ["@msgpackr-extract/msgpackr-extract-win32-x64@3.0.4", "", { "os": "win32", "cpu": "x64" }, "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ=="], - "@nodable/entities": ["@nodable/entities@2.1.0", "", {}, "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA=="], "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], @@ -703,7 +692,7 @@ "babel-plugin-transform-flow-enums": ["babel-plugin-transform-flow-enums@0.0.2", "", { "dependencies": { "@babel/plugin-syntax-flow": "^7.12.1" } }, "sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ=="], - "babel-preset-expo": ["babel-preset-expo@56.0.13", "", { "dependencies": { "@babel/generator": "^7.20.5", "@babel/helper-module-imports": "^7.25.9", "@babel/plugin-proposal-decorators": "^7.12.9", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-class-static-block": "^7.27.1", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.28.6", "@babel/plugin-transform-react-jsx-development": "^7.27.1", "@babel/plugin-transform-react-pure-annotations": "^7.27.1", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/preset-typescript": "^7.23.0", "@react-native/babel-plugin-codegen": "0.85.3", "babel-plugin-react-compiler": "^1.0.0", "babel-plugin-react-native-web": "~0.21.0", "babel-plugin-syntax-hermes-parser": "^0.33.3", "babel-plugin-transform-flow-enums": "^0.0.2", "debug": "^4.3.4" }, "peerDependencies": { "@babel/runtime": "^7.20.0", "expo": "*", "expo-widgets": "^56.0.15", "react-refresh": ">=0.14.0 <1.0.0" }, "optionalPeers": ["@babel/runtime", "expo", "expo-widgets"] }, "sha512-+CxxAQrN95N+/dF4AUJXNxEh5cEv4yhxb4CM5ijdc2OeIIw+hxzYh2OM1X7QHIm6hkT66H4vJCTT636yjJ8MnQ=="], + "babel-preset-expo": ["babel-preset-expo@56.0.15", "", { "dependencies": { "@babel/generator": "^7.20.5", "@babel/helper-module-imports": "^7.25.9", "@babel/plugin-proposal-decorators": "^7.12.9", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-class-static-block": "^7.27.1", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-export-namespace-from": "^7.25.9", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-object-rest-spread": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-parameters": "^7.24.7", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.28.6", "@babel/plugin-transform-react-jsx-development": "^7.27.1", "@babel/plugin-transform-react-pure-annotations": "^7.27.1", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@babel/preset-typescript": "^7.23.0", "@react-native/babel-plugin-codegen": "0.85.3", "babel-plugin-react-compiler": "^1.0.0", "babel-plugin-react-native-web": "~0.21.0", "babel-plugin-syntax-hermes-parser": "^0.33.3", "babel-plugin-transform-flow-enums": "^0.0.2", "debug": "^4.3.4" }, "peerDependencies": { "@babel/runtime": "^7.20.0", "expo": "*", "expo-widgets": "^56.0.18", "react-refresh": ">=0.14.0 <1.0.0" }, "optionalPeers": ["@babel/runtime", "expo", "expo-widgets"] }, "sha512-0MqbQoM6nBUbKvgu2xJ4VixZnUTGTq3HB2WwvOikdO4CiPxbQ+wGA25fOoHHSni5iEFW39wy6y1ookTWlq3wVw=="], "badgin": ["badgin@1.2.3", "", {}, "sha512-NQGA7LcfCpSzIbGRbkgjgdWkjy7HI+Th5VLxTJfW5EeaAf3fnS+xWQaQOCYiny+q6QSvxqoSO04vCx+4u++EJw=="], @@ -937,33 +926,33 @@ "expect": ["expect@29.7.0", "", { "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw=="], - "expo": ["expo@56.0.6", "", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "^56.1.12", "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.8", "@expo/devtools": "~56.0.2", "@expo/dom-webview": "~56.0.5", "@expo/fingerprint": "^0.19.3", "@expo/local-build-cache-provider": "^56.0.8", "@expo/log-box": "^56.0.12", "@expo/metro": "~56.0.0", "@expo/metro-config": "~56.0.13", "@ungap/structured-clone": "^1.3.0", "babel-preset-expo": "~56.0.13", "expo-asset": "~56.0.15", "expo-constants": "~56.0.16", "expo-file-system": "~56.0.7", "expo-font": "~56.0.5", "expo-keep-awake": "~56.0.3", "expo-modules-autolinking": "~56.0.14", "expo-modules-core": "~56.0.13", "pretty-format": "^29.7.0", "react-refresh": "^0.14.2", "whatwg-url-minimum": "^0.1.2" }, "peerDependencies": { "@expo/metro-runtime": "*", "react": "*", "react-dom": "*", "react-native": "*", "react-native-web": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/metro-runtime", "react-dom", "react-native-web", "react-native-webview"], "bin": { "expo": "bin/cli", "fingerprint": "bin/fingerprint", "expo-modules-autolinking": "bin/autolinking" } }, "sha512-zcFa/+6hGtzCUlcrGiusvzr/PIoNBAnjj4PlAFrvbAOZcVOj6c9Mp7lRSn9XYJk8Ok6pssQWt6dP4llJlKmYRQ=="], + "expo": ["expo@56.0.11", "", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "^56.1.15", "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.8", "@expo/devtools": "~56.0.2", "@expo/dom-webview": "~56.0.5", "@expo/fingerprint": "^0.19.4", "@expo/local-build-cache-provider": "^56.0.8", "@expo/log-box": "^56.0.13", "@expo/metro": "~56.0.0", "@expo/metro-config": "~56.0.14", "@ungap/structured-clone": "^1.3.0", "babel-preset-expo": "~56.0.15", "expo-asset": "~56.0.17", "expo-constants": "~56.0.18", "expo-file-system": "~56.0.8", "expo-font": "~56.0.6", "expo-keep-awake": "~56.0.3", "expo-modules-autolinking": "~56.0.15", "expo-modules-core": "~56.0.16", "pretty-format": "^29.7.0", "react-refresh": "^0.14.2", "whatwg-url-minimum": "^0.1.2" }, "peerDependencies": { "@expo/metro-runtime": "*", "react": "*", "react-dom": "*", "react-native": "*", "react-native-web": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/metro-runtime", "react-dom", "react-native-web", "react-native-webview"], "bin": { "expo": "bin/cli", "fingerprint": "bin/fingerprint", "expo-modules-autolinking": "bin/autolinking" } }, "sha512-YqF+q+JqfobDU5yFym3h1vQqzbl7rFiDB4wAJEyK6NK+KLeyf4pfzydQcNTyqLXQKcQBG1reBJExfDShoAYTzw=="], "expo-application": ["expo-application@56.0.3", "", { "peerDependencies": { "expo": "*" } }, "sha512-DdGGPlMuM6cSTeKhbvh6OeLr2O/+EI5BHKYrD+Do8sJPYgLwzGrgESELfyjJCpEhFzT+TgKIdmLmWXhNUQnHiw=="], - "expo-asset": ["expo-asset@56.0.15", "", { "dependencies": { "@expo/image-utils": "^0.10.1", "expo-constants": "~56.0.16" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-BHGi2IAOPQTcOelkUdcz1WIknfCTRjkcpYHX1azjMwgYenrVC+J5qcqJGaC8eUOWLCRtkRJWGnmFQRYtLU1nUQ=="], + "expo-asset": ["expo-asset@56.0.17", "", { "dependencies": { "@expo/image-utils": "^0.10.1", "expo-constants": "~56.0.18" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-GFN5j+8SPkyv0nfsiFHewmdB/D0tL237TsBE/gSfFOFy/J3a52py7IulcSqkA3sQE/u/UlD5BmvP5ssS4//nUg=="], - "expo-audio": ["expo-audio@56.0.11", "", { "peerDependencies": { "expo": "*", "expo-asset": "*", "react": "*", "react-native": "*" } }, "sha512-naionxilr49IpEjmMqCj5gXHCSfOsgu3nZ/KXndexR05Tv6dET7dmespyZkcMrADJN07gA5hyqPUC5WqWuaFLw=="], + "expo-audio": ["expo-audio@56.0.12", "", { "peerDependencies": { "expo": "*", "expo-asset": "*", "react": "*", "react-native": "*" } }, "sha512-ne2UIO/HsQoBL9e+tGs5N9Sf3NyW5sJMm4sDkexbSJRc2IchLDG+9Msu/+l5N4RlZ8SiF42wRyWsh/Usg+SwOw=="], - "expo-background-task": ["expo-background-task@56.0.15", "", { "dependencies": { "expo-task-manager": "~56.0.15" }, "peerDependencies": { "expo": "*" } }, "sha512-ZBzLkKFmM5ZpJYl1D1kpmk6MomLbVx6LQbMX4GGLg8TSidvvtden0haIw4R5Rpkgzj3LOjvFMFli5a4kQA7VCA=="], + "expo-background-task": ["expo-background-task@56.0.18", "", { "dependencies": { "expo-task-manager": "~56.0.18" }, "peerDependencies": { "expo": "*" } }, "sha512-jfEvLq/hZUWkef+lOt0sbe/Jd8wnK0fMgqsZhD1ulWk1IKB0AWsjmJ0iCTDMD9L9MDztpvKf2g/ygzljmo2eGA=="], "expo-blur": ["expo-blur@56.0.3", "", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-KDDtrpWc2tYlm1WCPaOgBtv+YEGqe5ELheFPIgSNgHt28NQUDcfBcFsA9Us2StDh6osmSD6NbKxOt5bU6PcDbQ=="], "expo-brightness": ["expo-brightness@56.0.5", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-AkCGW+Lj8I4o2+Yjs1bzjIJz44cgNXfAN+pf01uDwmA1/1JTIy8x1eISvmz6d2r/1OhdyBZxeDkACNLVMDx5zA=="], - "expo-build-properties": ["expo-build-properties@56.0.15", "", { "dependencies": { "@expo/schema-utils": "^56.0.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "peerDependencies": { "expo": "*" } }, "sha512-3OlfTnBE6BIFxchjXzb0OlgDcWw19fxhIzpIZqgcgzZUVjyn4gCrQuNcsfazVVddBypwkEzOVfwArPROIk4J7g=="], + "expo-build-properties": ["expo-build-properties@56.0.18", "", { "dependencies": { "@expo/schema-utils": "^56.0.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "peerDependencies": { "expo": "*" } }, "sha512-at03ytur1Vfyl9ddtRMqIdSyR/oV57GM04+NZ5rhFTF0mC7dmKzxS9RBb34KHDPdT8UwUt7KsKbzYD1lnxLAKg=="], - "expo-camera": ["expo-camera@56.0.7", "", { "dependencies": { "barcode-detector": "^3.0.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-c8z+UheidFintQyP9XLEDP43aK4PS/o9+TFLW0zEOjdqkYCBgoWq6Mw/Ps62kjBeftFY7xrp5ZLITbenNvbTaw=="], + "expo-camera": ["expo-camera@56.0.8", "", { "dependencies": { "barcode-detector": "^3.0.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-UDOpUUMisFRmCv1XQV1MJCKGAH2CsIC1Rs6P9Bbc6JLVmbxEKAd5dK68y6cScOdWURxVfJ0PRcjYnSuc8ayyIQ=="], - "expo-constants": ["expo-constants@56.0.16", "", { "dependencies": { "@expo/env": "~2.3.0" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-6tsiN+gmTUPp/atyA+uY9Tg8VOdXdmb4s/3TVGolfn6A/oCAraw1pcPZX5XllyD+xUguxB6eBSFAT8494hZVMA=="], + "expo-constants": ["expo-constants@56.0.18", "", { "dependencies": { "@expo/env": "~2.3.0" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-8AMtbDGl/WVPnWlmbpGmvcdnNCy9E4PFnwdVwj600vljkMDPSxcAcjw8GVXEPk3PpZ+ngTqsrkltWyj0UKYAxw=="], "expo-crypto": ["expo-crypto@56.0.4", "", { "peerDependencies": { "expo": "*" } }, "sha512-fRNEhoXRXgAWBpe3/hq5X+KXTit3OZqdiAGts1YvNEUHQb+H5591mpPac0Yw+sZg9pXcrjRnzo5AxvZaENpc7g=="], - "expo-dev-client": ["expo-dev-client@56.0.16", "", { "dependencies": { "expo-dev-launcher": "~56.0.16", "expo-dev-menu": "~56.0.15", "expo-dev-menu-interface": "~56.0.0", "expo-manifests": "~56.0.4", "expo-updates-interface": "~56.0.1" }, "peerDependencies": { "expo": "*" } }, "sha512-mxmGA6YSP4KiMB4bREpriQ4K6EaS4tcm0eh1+LtAzgFCytq+Y4WxMfIvFe3B5kXlSpA0ohMLdAN0AUzU0xHGQg=="], + "expo-dev-client": ["expo-dev-client@56.0.20", "", { "dependencies": { "expo-dev-launcher": "~56.0.20", "expo-dev-menu": "~56.0.17", "expo-dev-menu-interface": "~56.0.0", "expo-manifests": "~56.0.4", "expo-updates-interface": "~56.0.1" }, "peerDependencies": { "expo": "*" } }, "sha512-KebW4r8HhIiRrPzs6ZqVhp/so8buyglAO1h4No0Ibr5C2XRnlIoGWCN4zC6rW7IsI3iKUXcofLAQV9OjoxjiwQ=="], - "expo-dev-launcher": ["expo-dev-launcher@56.0.16", "", { "dependencies": { "@expo/schema-utils": "^56.0.0", "expo-dev-menu": "~56.0.15", "expo-manifests": "~56.0.4" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-3t2PCX2lCKetKL8EgRRo2tzSlGh1zcuaWuwp3V0k4/3nuM7pztyImaR6Sm3HUyarDOofAIPX1hIIxnuAfk5cnw=="], + "expo-dev-launcher": ["expo-dev-launcher@56.0.20", "", { "dependencies": { "@expo/schema-utils": "^56.0.0", "expo-dev-menu": "~56.0.17", "expo-manifests": "~56.0.4" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-cTuC3GkPl9CTwO3CKnVmEm9qoQ0WairhwvTh6qMlg+zr/QU/tdiU++uDBX67hf9+FuxQOkWGp5khFNosT+0cIg=="], - "expo-dev-menu": ["expo-dev-menu@56.0.15", "", { "dependencies": { "expo-dev-menu-interface": "~56.0.0" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-FY6Y5sZkNXxPBGDgC51ZArOi8N7Y8wpXwanTClFO36IVMoVf7BBqhjW13KpDecvJONtEtaUeNIAt9C25PO8MOQ=="], + "expo-dev-menu": ["expo-dev-menu@56.0.17", "", { "dependencies": { "expo-dev-menu-interface": "~56.0.0" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-OofRkOOZnaDriSav3JDN4NP2lsLt2eOa/Ryptr5nMD62SwnFyK4R6n6PkPVaDU3LSsZqndAJHmN6inS+oziayQ=="], "expo-dev-menu-interface": ["expo-dev-menu-interface@56.0.1", "", { "peerDependencies": { "expo": "*" } }, "sha512-odATx0ZL/Kis10sKSBiKiGQxAB6coSi/KQtKcMhnQVNno6FkRh5/4e5BqcEvpq2rNMTiQp4ytNAQHtdwbPXvGA=="], @@ -971,15 +960,15 @@ "expo-doctor": ["expo-doctor@1.19.9", "", { "bin": { "expo-doctor": "bin/expo-doctor.js" } }, "sha512-SJW5HxEDQ9f5QdFvrUwfbdJZ4HI0EAAxsrJqrHBFjKBum+uSOcEIZPLRibwNQLTHOwTO1TWNLiMlF9sDUBWeYw=="], - "expo-file-system": ["expo-file-system@56.0.7", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-dcKzo8ShPloM7jgfnMcJStgQebhP8owVjCkNI/aX6NMFV1CYB8bxKGMdnzJ3mXk5nfaiW+F/lSKr2UIJ02WAUA=="], + "expo-file-system": ["expo-file-system@56.0.8", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-NrH41/8snGIBSbYicwVLB4txPdgCATd7ZYhMAGS3YJZ9GbnduhlAoV4/YCbGayjrbpE9bJb/6wegPL/zmvRMnQ=="], - "expo-font": ["expo-font@56.0.5", "", { "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-WLoDu9hlEgPRKXJRR01HFLJ6Z2tFcORX/WFPRYBndmYc5kjQrFGH/j4BRaF3aBRPyYEAUXiUJybNLXkKCwEXQw=="], + "expo-font": ["expo-font@56.0.6", "", { "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-D4s72Aei844C2s8Vy61qMr6wLEjv6BMrXA1oyRQ0x8LJBbpm5gyogUohc0lABUURVLCqsnBIDdztegl3hktmmg=="], "expo-glass-effect": ["expo-glass-effect@56.0.4", "", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-xI9rXtDwi7RW82uAlfyaXO6+k21ApWJ2tHAWYqPr/FjfmZbKsgNJ4Q0iZzGPCwboqjTGxaRZ61SZxBl8hDt5iA=="], "expo-haptics": ["expo-haptics@56.0.3", "", { "peerDependencies": { "expo": "*" } }, "sha512-ycoahZJnR9tWAVh/0mJYxbETtHRYaWjiWS8cHlP6aDGU6Q6Y8rZ5NKsuBwWw6HR2Pe30mfVFgbF2HrBR6gtYmw=="], - "expo-image": ["expo-image@56.0.9", "", { "dependencies": { "sf-symbols-typescript": "^2.2.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-FifiRehXnMul5XeUVHWv+COHFUeCAdsYf5MiCPUBlhr4pRb0sxjA4/floi/TEDpATOIw6GqxbrC4FdZBoyrJmw=="], + "expo-image": ["expo-image@56.0.11", "", { "dependencies": { "sf-symbols-typescript": "^2.2.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-k2xwxGk14xi6zxmEGAU4rUTb1lK5qf0y0Qb8+Jaggnul0KaJJxcq9qvyDp9iyJBW35cp9isONAUnNtIiooZ/Pw=="], "expo-json-utils": ["expo-json-utils@56.0.0", "", {}, "sha512-lUqyv9aIGDbYTQ5Nux2FnH2/Dz0w5uJ8Pr080eS0StXi2jr5OmuMNErpzUnpfnYOU55xKotd4AHv68PfV/ludg=="], @@ -987,41 +976,41 @@ "expo-linear-gradient": ["expo-linear-gradient@56.0.4", "", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-KUp1dNSRtuMyiExhf6FJf5YUtmw2cRaPytl10HQi7isj5Yac38udmD55T2tglNYTZlvgT5+oflpyFoH15hmOcw=="], - "expo-linking": ["expo-linking@56.0.12", "", { "dependencies": { "expo-constants": "~56.0.16", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-EJ+YoazVqlrUXMAARo1iTExpqEGjuKJDGiE/P1K+A3m5hs+2Uf8F9ucqpq9k5dizeiaV2D8B9+uLvqMHFzGGsQ=="], + "expo-linking": ["expo-linking@56.0.14", "", { "dependencies": { "expo-constants": "~56.0.18", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-IvVQHWC+Cj4fK5qD3iEVYqpU2a4rLW0IpAAlGJ4MH+H1fyZiHh3eN6qg2WmoclOEPfYATSuEa+dQT6wfgVpXlQ=="], "expo-localization": ["expo-localization@56.0.6", "", { "dependencies": { "rtl-detect": "^1.0.2" }, "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-zzBVoUFHCVNBywcxGsspoZeIXebihOo/AnmQYE4jMv8gHCSKlLNFT+ft+0+mWcZCMs9necvUs8S8TDonAu/xBA=="], - "expo-location": ["expo-location@56.0.14", "", { "dependencies": { "@expo/image-utils": "^0.10.1" }, "peerDependencies": { "expo": "*" } }, "sha512-k9p6mR11o5S0R4yUs3uWLJfnSk6XIB9UIgSYiNu2goGLWb2f0sazuZ0iYhuc2p2wIsdidhpL/51ZXjtZl5JCOg=="], + "expo-location": ["expo-location@56.0.17", "", { "dependencies": { "@expo/image-utils": "^0.10.1" }, "peerDependencies": { "expo": "*" } }, "sha512-3kEONgFApqGzuRhgWyYGb/nXK+rYaeuHtcCYkuVNbrDSlHYYe+mgQPeM4Iuqv43Fihmp0mKsNtq7zX030nE+VA=="], "expo-manifests": ["expo-manifests@56.0.4", "", { "dependencies": { "expo-json-utils": "~56.0.0" }, "peerDependencies": { "expo": "*" } }, "sha512-Fokawl2UkiExIF0bqGoblRFA8lYpROVD+EpvDwSW4LgqQyPwNua1gLSgHZjdl5GsVugfRMMWE3LHaibDyX93hw=="], - "expo-modules-autolinking": ["expo-modules-autolinking@56.0.14", "", { "dependencies": { "@expo/require-utils": "^56.1.3", "@expo/spawn-async": "^1.8.0", "chalk": "^4.1.0", "commander": "^7.2.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, "sha512-9ugtZkheNPYDkW4DZopY1rH2BCbUICaafUEPxRgbLDR5UNRF5K3cdHMIMEt8pxZPq2+eX4wCm+6pbSvdY/DPHg=="], + "expo-modules-autolinking": ["expo-modules-autolinking@56.0.15", "", { "dependencies": { "@expo/require-utils": "^56.1.3", "@expo/spawn-async": "^1.8.0", "chalk": "^4.1.0", "commander": "^7.2.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, "sha512-WqpBFwLzn7DsrUkWltIjVmAjwuI1VdQ2jRMlvk1nh2kVadwdJBkSjUBQWRifsEePNhiMT/rFOovBolUU/ARt5w=="], - "expo-modules-core": ["expo-modules-core@56.0.13", "", { "dependencies": { "@expo/expo-modules-macros-plugin": "~0.0.9", "expo-modules-jsi": "~56.0.7", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*", "react-native-worklets": "^0.7.4 || ^0.8.0" }, "optionalPeers": ["react-native-worklets"] }, "sha512-3Hgpi9Q1O0XqoesQtgFY7qhfDsNA3bJtdCJotEqdE42+N8Zv/LJACbNgIyFN/XrnMDzfF5rozh0vNWaRT0/eXQ=="], + "expo-modules-core": ["expo-modules-core@56.0.16", "", { "dependencies": { "@expo/expo-modules-macros-plugin": "0.2.2", "expo-modules-jsi": "~56.0.9", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*", "react-native-worklets": "^0.7.4 || ^0.8.0" }, "optionalPeers": ["react-native-worklets"] }, "sha512-IVdT0CnqOpQCPdemA5rb50CPbbhWeJePnvuH0yUmOmyMkNky8WVOdRQtVicoIv4CCG5hDrzPIxULD4YOHZ5CHg=="], - "expo-modules-jsi": ["expo-modules-jsi@56.0.7", "", { "peerDependencies": { "react-native": "*" } }, "sha512-iBAj4Xeh/8HT201VVxFlmf+VBfmtQV1ZUoJdLQQENm0+j9gnD2QswZLJyNo3CmNNXl46esJeLR5lpGpYZts/zA=="], + "expo-modules-jsi": ["expo-modules-jsi@56.0.9", "", { "peerDependencies": { "react-native": "*" } }, "sha512-2lfDkRcsP/Qh2upS+nu0MS0tfGsghc6ehTivzbgM5nJz0MGYhAJxCJSeendWM+aOQutQAwzsoxrNT0nW8lRAwA=="], - "expo-notifications": ["expo-notifications@56.0.14", "", { "dependencies": { "@expo/image-utils": "^0.10.1", "abort-controller": "^3.0.0", "badgin": "^1.1.5", "expo-application": "~56.0.3", "expo-constants": "~56.0.16" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-A+BDJYyBIkC17Bfqlrbf9A80npjOyoTbaSCydP2agfhVv+Ld7DuOYOJSApBmtzBZM0LvdUVX/pdrwjEp1ixmaw=="], + "expo-notifications": ["expo-notifications@56.0.17", "", { "dependencies": { "@expo/image-utils": "^0.10.1", "abort-controller": "^3.0.0", "badgin": "^1.1.5", "expo-application": "~56.0.3", "expo-constants": "~56.0.18" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-Yn6JUKmoBDkQeznbuUn4cHF2u44r1ErJTneW65MBFt7NLG8U8/VGQ4bBVwswm5nPH1/V92UoXPgvCssScPFRDg=="], - "expo-router": ["expo-router@56.2.7", "", { "dependencies": { "@expo/log-box": "^56.0.12", "@expo/metro-runtime": "^56.0.13", "@expo/schema-utils": "^56.0.0", "@expo/ui": "^56.0.14", "@radix-ui/react-slot": "^1.2.0", "@radix-ui/react-tabs": "^1.1.12", "@react-native-masked-view/masked-view": "^0.3.2", "@testing-library/jest-dom": "^6.9.1", "@testing-library/user-event": "^14.6.1", "client-only": "^0.0.1", "color": "^4.2.3", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "expo-glass-effect": "^56.0.4", "expo-server": "^56.0.4", "expo-symbols": "^56.0.5", "fast-deep-equal": "^3.1.3", "invariant": "^2.2.4", "nanoid": "^3.3.8", "query-string": "^7.1.3", "react-fast-compare": "^3.2.2", "react-is": "^19.1.0", "react-native-drawer-layout": "^4.2.2", "react-native-screens": "^4.25.2", "server-only": "^0.0.1", "sf-symbols-typescript": "^2.1.0", "shallowequal": "^1.1.0", "vaul": "^1.1.2" }, "peerDependencies": { "@testing-library/react-native": ">= 13.2.0", "expo": "*", "expo-constants": "^56.0.16", "expo-linking": "^56.0.12", "react": "*", "react-dom": "*", "react-native": "*", "react-native-gesture-handler": "*", "react-native-reanimated": "*", "react-native-safe-area-context": ">= 5.4.0", "react-native-web": "*", "react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4" }, "optionalPeers": ["@testing-library/react-native", "react-dom", "react-native-gesture-handler", "react-native-reanimated", "react-native-web", "react-server-dom-webpack"] }, "sha512-T7MSugHfj6XDrVJG8dCkP5EEAWeCkPrkkxqKCqCRokXmBKTAiRGXsmPsgHzOXhr/5MxGDJXhj5ON19uWoCevDA=="], + "expo-router": ["expo-router@56.2.10", "", { "dependencies": { "@expo/log-box": "^56.0.13", "@expo/metro-runtime": "^56.0.15", "@expo/schema-utils": "^56.0.0", "@expo/ui": "^56.0.17", "@radix-ui/react-slot": "^1.2.0", "@radix-ui/react-tabs": "^1.1.12", "@react-native-masked-view/masked-view": "^0.3.2", "@testing-library/jest-dom": "^6.9.1", "@testing-library/user-event": "^14.6.1", "client-only": "^0.0.1", "color": "^4.2.3", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "expo-glass-effect": "^56.0.4", "expo-server": "^56.0.5", "expo-symbols": "^56.0.6", "fast-deep-equal": "^3.1.3", "invariant": "^2.2.4", "nanoid": "^3.3.8", "query-string": "^7.1.3", "react-fast-compare": "^3.2.2", "react-is": "^19.1.0", "react-native-drawer-layout": "^4.2.2", "react-native-screens": "^4.25.2", "server-only": "^0.0.1", "sf-symbols-typescript": "^2.1.0", "shallowequal": "^1.1.0", "standard-navigation": "^0.0.5", "vaul": "^1.1.2" }, "peerDependencies": { "@testing-library/react-native": ">= 13.2.0", "expo": "*", "expo-constants": "^56.0.18", "expo-linking": "^56.0.14", "react": "*", "react-dom": "*", "react-native": "*", "react-native-gesture-handler": "*", "react-native-reanimated": "*", "react-native-safe-area-context": ">= 5.4.0", "react-native-web": "*", "react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4" }, "optionalPeers": ["@testing-library/react-native", "react-dom", "react-native-gesture-handler", "react-native-reanimated", "react-native-web", "react-server-dom-webpack"] }, "sha512-u7WcdsFAjSrQS7Bdb1VbNPE3xNcd/BZ6qXSS31UAJKhaYIb+ik3jJSy/W5kY3qKipwbwlo3CSb1WnZ2XYs7F+Q=="], "expo-screen-orientation": ["expo-screen-orientation@56.0.5", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-Puf4L/cgM8z45Z2fwZzJtlVGSk0ZM/l3gBqXm50bKTACmUk8P8fr7HVbDfs8reyoZuEKKFZJ0VlnKo5i6cSotQ=="], "expo-secure-store": ["expo-secure-store@56.0.4", "", { "peerDependencies": { "expo": "*" } }, "sha512-hjEi/gmpdFFJ9lYbdp3k3p/WchV7Gi0Qt8jt/m/0WJadqQrskafHAlDxbZkII1cN3Yd7zp9Lvkeq3UfGhSwirQ=="], - "expo-server": ["expo-server@56.0.4", "", {}, "sha512-4dJ57KuAwDl7eQGD6aG9kTzBIftWAfHH1+6Zxy7NcPCBrKYis3/H5enGUz1asH8HHhONXfJ5BdJqfEWAEAgWxA=="], + "expo-server": ["expo-server@56.0.5", "", {}, "sha512-SmM2p2g3Jrktpiazcst+OxhjSzOHXKAY4BPURHYHXvApzzoybMmrNF4IEZ8DKZ145BhSe4ydAmlEFCRTsdtgUQ=="], - "expo-sharing": ["expo-sharing@56.0.14", "", { "dependencies": { "@expo/config-plugins": "^56.0.8", "@expo/config-types": "^56.0.5", "@expo/plist": "^0.7.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-Hu7pm3U9vn9NFGBe5EUM6ct6wBhAc7Zgl5koOYpJnMvL6n85bkIA8sLvvxB6V+p4JRoh3TD6xXpOIr23qwsV2w=="], + "expo-sharing": ["expo-sharing@56.0.17", "", { "dependencies": { "@expo/config-plugins": "^56.0.8", "@expo/config-types": "^56.0.5", "@expo/plist": "^0.7.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-FqN7/UBau0PJ2O8OeMYS/fwE+6UMtdoDeGxsRoaileK0w30bXC92MuT7z4ujnk4mF9ZZBjS8axbGOgrZ6JWBEA=="], "expo-splash-screen": ["expo-splash-screen@56.0.10", "", { "dependencies": { "@expo/config-plugins": "~56.0.8", "@expo/image-utils": "^0.10.1", "xml2js": "0.6.0" }, "peerDependencies": { "expo": "*" } }, "sha512-vDIlo8hzt9HlCZQ0kSY66v83D1WEXOJbVMeyPDfXDu9tbDdPMNUyDpi4WGJXikAjxnAKfbt5Mv5NnEbxINy+VA=="], "expo-status-bar": ["expo-status-bar@56.0.4", "", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-IGs/fDfkHXofy2ZQrGiXayhFK04HB85FZXorhcEhDZEcqASKgSqpak+HwUtAaR0MeTJwWyHNF7I6VmVbbp8EcA=="], - "expo-symbols": ["expo-symbols@56.0.5", "", { "dependencies": { "@expo-google-fonts/material-symbols": "^0.4.1", "sf-symbols-typescript": "^2.0.0" }, "peerDependencies": { "expo": "*", "expo-font": "*", "react": "*", "react-native": "*" } }, "sha512-RIukH0Xo80C7RU8qreipL2SPy2Py+Km8JFPbCmbPQpHkM3DW9Znlmg6VfhzbtUOlO5EuNSF0lAJ3l2VJi6qYrw=="], + "expo-symbols": ["expo-symbols@56.0.6", "", { "dependencies": { "@expo-google-fonts/material-symbols": "^0.4.1", "sf-symbols-typescript": "^2.0.0" }, "peerDependencies": { "expo": "*", "expo-font": "*", "react": "*", "react-native": "*" } }, "sha512-BrA81DjcNafdj7gXVhdrExb9LtUiSVyOf/NavyMmDAHgHMY1GqeR5cnn1PSAZeYKnSgQhee/H89XUpAxtog5hg=="], "expo-system-ui": ["expo-system-ui@56.0.5", "", { "dependencies": { "@react-native/normalize-colors": "0.85.3", "debug": "^4.3.2" }, "peerDependencies": { "expo": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-n1MmnUArV4cc3gVed9fGtluPme00PE9axKVx+NHbKxHFMam5l4GcOI7PxbYKFNx8o7WA1LRD7eLW33agmZrxGg=="], - "expo-task-manager": ["expo-task-manager@56.0.15", "", { "dependencies": { "unimodules-app-loader": "~56.0.0" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-8vbKYocXJHv27++9AubVaEvVujTdt5Z10XddaxHAhWO60uw1Zom6yRjSAayRbZ5hNFA1c72KfA2vOETXZR9IGg=="], + "expo-task-manager": ["expo-task-manager@56.0.18", "", { "dependencies": { "unimodules-app-loader": "~56.0.0" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-abTKDhlZ572wSwNuZ9HkDw6rl+kKLq0TkqheIEbGoRkMQVEGV3D5GYYY0gg84TO/HvAqiipdcBFQH8+9uHj70Q=="], "expo-updates-interface": ["expo-updates-interface@56.0.2", "", { "peerDependencies": { "expo": "*" } }, "sha512-eWTwSZ9y8vrULG2oBn2TQSSIwBGSq/TxGJ3jY6tuVS2FWH/ASRIiKs3zkUZTRoC3ZuV2alz0mUClYV7nNrFx8g=="], @@ -1369,10 +1358,6 @@ "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], - "msgpackr": ["msgpackr@2.0.2", "", { "optionalDependencies": { "msgpackr-extract": "^3.0.4" } }, "sha512-c5hYOXFbP79Slh6Dzd2wzk+jnV7mX1UxfMYtilnY1NmalXPqG8DGb5cYCMBrW4AsH3zekBBZd4QrKz9NhtvYLQ=="], - - "msgpackr-extract": ["msgpackr-extract@3.0.4", "", { "dependencies": { "node-gyp-build-optional-packages": "5.2.2" }, "optionalDependencies": { "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.4", "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.4", "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.4", "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.4", "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.4", "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.4" }, "bin": { "download-msgpackr-prebuilds": "bin/download-prebuilds.js" } }, "sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw=="], - "multitars": ["multitars@1.0.0", "", {}, "sha512-H/J4fMLedtudftaYMOg7ajzLYgT3/rwbWVJbqr/iUgB8DQztn38ys5HOqI1CzSxx8QhXXwOOnnBvd4v3jG5+Mg=="], "mz": ["mz@2.7.0", "", { "dependencies": { "any-promise": "^1.0.0", "object-assign": "^4.0.1", "thenify-all": "^1.0.0" } }, "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q=="], @@ -1389,8 +1374,6 @@ "node-forge": ["node-forge@1.4.0", "", {}, "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ=="], - "node-gyp-build-optional-packages": ["node-gyp-build-optional-packages@5.2.2", "", { "dependencies": { "detect-libc": "^2.0.1" }, "bin": { "node-gyp-build-optional-packages": "bin.js", "node-gyp-build-optional-packages-optional": "optional.js", "node-gyp-build-optional-packages-test": "build-test.js" } }, "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw=="], - "node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="], "node-releases": ["node-releases@2.0.46", "", {}, "sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ=="], @@ -1739,6 +1722,8 @@ "stacktrace-parser": ["stacktrace-parser@0.1.11", "", { "dependencies": { "type-fest": "^0.7.1" } }, "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg=="], + "standard-navigation": ["standard-navigation@0.0.5", "", {}, "sha512-YAmzwAiiQVocZxO/VGPFiQHcu5pKiz09QIGC0MK6aRMoa3E0QkoTQgcqJr7ZZ3OMiNhu4DkaGElFI5htjOIDbw=="], + "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], "stream-buffers": ["stream-buffers@2.2.0", "", {}, "sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg=="], @@ -1823,7 +1808,7 @@ "type-is": ["type-is@2.1.0", "", { "dependencies": { "content-type": "^2.0.0", "media-typer": "^1.1.0", "mime-types": "^3.0.0" } }, "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA=="], - "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + "typescript": ["typescript@6.0.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw=="], "ua-parser-js": ["ua-parser-js@0.7.41", "", { "bin": { "ua-parser-js": "script/cli.js" } }, "sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg=="], @@ -1969,8 +1954,6 @@ "@expo/image-utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], - "@expo/metro-config/@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="], - "@expo/metro-config/getenv": ["getenv@2.0.0", "", {}, "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ=="], "@expo/metro-config/glob": ["glob@13.0.6", "", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], @@ -1981,6 +1964,8 @@ "@expo/require-utils/@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="], + "@expo/ws-tunnel/ws": ["ws@8.21.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g=="], + "@jest/types/@types/node": ["@types/node@25.9.1", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg=="], "@jimp/png/pngjs": ["pngjs@6.0.0", "", {}, "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg=="], diff --git a/package.json b/package.json index 588ada9a..0c4715d3 100644 --- a/package.json +++ b/package.json @@ -30,9 +30,9 @@ "dependencies": { "@bottom-tabs/react-navigation": "1.2.0", "@douglowder/expo-av-route-picker-view": "^0.0.5", - "@expo/metro-runtime": "~56.0.13", + "@expo/metro-runtime": "~56.0.15", "@expo/react-native-action-sheet": "^4.1.1", - "@expo/ui": "~56.0.14", + "@expo/ui": "~56.0.17", "@expo/vector-icons": "^15.0.3", "@gorhom/bottom-sheet": "5.2.14", "@jellyfin/sdk": "^0.13.0", @@ -45,35 +45,35 @@ "@tanstack/react-query": "5.100.14", "@tanstack/react-query-persist-client": "^5.100.14", "axios": "^1.7.9", - "expo": "~56.0.6", + "expo": "~56.0.11", "expo-application": "~56.0.3", - "expo-asset": "~56.0.15", - "expo-audio": "~56.0.11", - "expo-background-task": "~56.0.15", + "expo-asset": "~56.0.17", + "expo-audio": "~56.0.12", + "expo-background-task": "~56.0.18", "expo-blur": "~56.0.3", "expo-brightness": "~56.0.5", - "expo-build-properties": "~56.0.15", - "expo-camera": "~56.0.7", - "expo-constants": "~56.0.16", + "expo-build-properties": "~56.0.18", + "expo-camera": "~56.0.8", + "expo-constants": "~56.0.18", "expo-crypto": "~56.0.4", - "expo-dev-client": "~56.0.16", + "expo-dev-client": "~56.0.20", "expo-device": "~56.0.4", - "expo-font": "~56.0.5", + "expo-font": "~56.0.6", "expo-haptics": "~56.0.3", - "expo-image": "~56.0.9", + "expo-image": "~56.0.11", "expo-linear-gradient": "~56.0.4", - "expo-linking": "~56.0.12", + "expo-linking": "~56.0.14", "expo-localization": "~56.0.6", - "expo-location": "~56.0.14", - "expo-notifications": "~56.0.14", - "expo-router": "~56.2.7", + "expo-location": "~56.0.17", + "expo-notifications": "~56.0.17", + "expo-router": "~56.2.10", "expo-screen-orientation": "~56.0.5", "expo-secure-store": "~56.0.4", - "expo-sharing": "~56.0.14", + "expo-sharing": "~56.0.17", "expo-splash-screen": "~56.0.10", "expo-status-bar": "~56.0.4", "expo-system-ui": "~56.0.5", - "expo-task-manager": "~56.0.15", + "expo-task-manager": "~56.0.18", "expo-web-browser": "~56.0.5", "i18next": "^26.3.0", "jotai": "2.20.0", @@ -128,6 +128,7 @@ "@react-native-tvos/config-tv": "0.1.6", "@types/jest": "29.5.14", "@types/lodash": "4.17.24", + "@types/node": "^18.19.130", "@types/react": "~19.2.10", "@types/react-test-renderer": "19.1.0", "cross-env": "10.1.0", @@ -135,7 +136,7 @@ "husky": "9.1.7", "lint-staged": "17.0.5", "react-test-renderer": "19.2.3", - "typescript": "5.9.3" + "typescript": "6.0.3" }, "expo": { "doctor": { @@ -143,6 +144,7 @@ "exclude": [ "react-native-google-cast", "react-native-udp", + "react-native-track-player", "@jellyfin/sdk" ], "listUnknownPackages": false diff --git a/scripts/typecheck.js b/scripts/typecheck.js index ea1f4bea..81a2c9bc 100644 --- a/scripts/typecheck.js +++ b/scripts/typecheck.js @@ -140,7 +140,16 @@ function runTypeCheck() { const extraArgs = process.argv.slice(2); // Prefer local TypeScript binary when available - const runnerArgs = ["-p", "tsconfig.json", "--noEmit", ...extraArgs]; + // --pretty false: TS 6 enables pretty output even when piped, which breaks + // the line-based error parser below + const runnerArgs = [ + "-p", + "tsconfig.json", + "--noEmit", + "--pretty", + "false", + ...extraArgs, + ]; let execArgs = null; try { const tscBin = require.resolve("typescript/bin/tsc"); diff --git a/tsconfig.json b/tsconfig.json index 69354e8d..ecd844cd 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,6 +7,8 @@ "paths": { "@/*": ["./*"] }, + // TS 6.0: "types" now defaults to [] (no auto-inclusion of node_modules/@types) + "types": ["node", "jest"], "incremental": true, "tsBuildInfoFile": ".tsbuildinfo", "skipLibCheck": true, From 7983c68b9f70df2ee74898359f43942ede54c15f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 21:00:59 +0200 Subject: [PATCH 03/10] chore(deps): Lock file maintenance (#1706) --- bun.lock | 284 ++++++++++++++++++++++++++----------------------------- 1 file changed, 135 insertions(+), 149 deletions(-) diff --git a/bun.lock b/bun.lock index e9482718..7f6baa66 100644 --- a/bun.lock +++ b/bun.lock @@ -190,7 +190,7 @@ "@babel/plugin-syntax-typescript": ["@babel/plugin-syntax-typescript@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA=="], - "@babel/plugin-transform-arrow-functions": ["@babel/plugin-transform-arrow-functions@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA=="], + "@babel/plugin-transform-arrow-functions": ["@babel/plugin-transform-arrow-functions@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ=="], "@babel/plugin-transform-async-generator-functions": ["@babel/plugin-transform-async-generator-functions@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7", "@babel/helper-remap-async-to-generator": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA=="], @@ -198,11 +198,11 @@ "@babel/plugin-transform-block-scoping": ["@babel/plugin-transform-block-scoping@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ=="], - "@babel/plugin-transform-class-properties": ["@babel/plugin-transform-class-properties@7.27.1", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA=="], + "@babel/plugin-transform-class-properties": ["@babel/plugin-transform-class-properties@7.29.7", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA=="], "@babel/plugin-transform-class-static-block": ["@babel/plugin-transform-class-static-block@7.29.7", "", { "dependencies": { "@babel/helper-create-class-features-plugin": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.12.0" } }, "sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A=="], - "@babel/plugin-transform-classes": ["@babel/plugin-transform-classes@7.28.4", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.27.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-globals": "^7.28.0", "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-replace-supers": "^7.27.1", "@babel/traverse": "^7.28.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA=="], + "@babel/plugin-transform-classes": ["@babel/plugin-transform-classes@7.29.7", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.29.7", "@babel/helper-compilation-targets": "^7.29.7", "@babel/helper-globals": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7", "@babel/helper-replace-supers": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g=="], "@babel/plugin-transform-destructuring": ["@babel/plugin-transform-destructuring@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg=="], @@ -218,13 +218,13 @@ "@babel/plugin-transform-named-capturing-groups-regex": ["@babel/plugin-transform-named-capturing-groups-regex@7.29.7", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ=="], - "@babel/plugin-transform-nullish-coalescing-operator": ["@babel/plugin-transform-nullish-coalescing-operator@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA=="], + "@babel/plugin-transform-nullish-coalescing-operator": ["@babel/plugin-transform-nullish-coalescing-operator@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg=="], "@babel/plugin-transform-object-rest-spread": ["@babel/plugin-transform-object-rest-spread@7.29.7", "", { "dependencies": { "@babel/helper-compilation-targets": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7", "@babel/plugin-transform-destructuring": "^7.29.7", "@babel/plugin-transform-parameters": "^7.29.7", "@babel/traverse": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A=="], "@babel/plugin-transform-optional-catch-binding": ["@babel/plugin-transform-optional-catch-binding@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng=="], - "@babel/plugin-transform-optional-chaining": ["@babel/plugin-transform-optional-chaining@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1", "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg=="], + "@babel/plugin-transform-optional-chaining": ["@babel/plugin-transform-optional-chaining@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ=="], "@babel/plugin-transform-parameters": ["@babel/plugin-transform-parameters@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g=="], @@ -248,13 +248,13 @@ "@babel/plugin-transform-runtime": ["@babel/plugin-transform-runtime@7.29.7", "", { "dependencies": { "@babel/helper-module-imports": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7", "babel-plugin-polyfill-corejs2": "^0.4.14", "babel-plugin-polyfill-corejs3": "^0.13.0", "babel-plugin-polyfill-regenerator": "^0.6.5", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xmAscdE/AsqRW7vutbPNoUmu/nF5SrLKPs7aoJgEjo35lLKA/Bc0i2rMv/hr1+Y0o1bQCiVtith3u2vdgRL39Q=="], - "@babel/plugin-transform-shorthand-properties": ["@babel/plugin-transform-shorthand-properties@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ=="], + "@babel/plugin-transform-shorthand-properties": ["@babel/plugin-transform-shorthand-properties@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg=="], - "@babel/plugin-transform-template-literals": ["@babel/plugin-transform-template-literals@7.27.1", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg=="], + "@babel/plugin-transform-template-literals": ["@babel/plugin-transform-template-literals@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA=="], "@babel/plugin-transform-typescript": ["@babel/plugin-transform-typescript@7.29.7", "", { "dependencies": { "@babel/helper-annotate-as-pure": "^7.29.7", "@babel/helper-create-class-features-plugin": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.29.7", "@babel/plugin-syntax-typescript": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw=="], - "@babel/plugin-transform-unicode-regex": ["@babel/plugin-transform-unicode-regex@7.27.1", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.27.1", "@babel/helper-plugin-utils": "^7.27.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw=="], + "@babel/plugin-transform-unicode-regex": ["@babel/plugin-transform-unicode-regex@7.29.7", "", { "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.29.7", "@babel/helper-plugin-utils": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA=="], "@babel/preset-typescript": ["@babel/preset-typescript@7.29.7", "", { "dependencies": { "@babel/helper-plugin-utils": "^7.29.7", "@babel/helper-validator-option": "^7.29.7", "@babel/plugin-syntax-jsx": "^7.29.7", "@babel/plugin-transform-modules-commonjs": "^7.29.7", "@babel/plugin-transform-typescript": "^7.29.7" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ=="], @@ -296,15 +296,15 @@ "@expo-google-fonts/material-symbols": ["@expo-google-fonts/material-symbols@0.4.38", "", {}, "sha512-IJkBtN1o8u9BW5fvSii1MyHPQ7Q0HxbWcVBvOrOzgMLpVtZw7R2w94wBTVR7kZwv3w1JNTESMmLA5Sqn1+Z36A=="], - "@expo/cli": ["@expo/cli@56.1.15", "", { "dependencies": { "@expo/code-signing-certificates": "^0.0.6", "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.8", "@expo/devcert": "^1.2.1", "@expo/env": "~2.3.0", "@expo/image-utils": "^0.10.1", "@expo/inline-modules": "^0.0.11", "@expo/json-file": "^10.2.0", "@expo/log-box": "^56.0.13", "@expo/metro": "~56.0.0", "@expo/metro-config": "~56.0.14", "@expo/metro-file-map": "^56.0.3", "@expo/osascript": "^2.6.0", "@expo/package-manager": "^1.12.1", "@expo/plist": "^0.7.0", "@expo/prebuild-config": "^56.0.15", "@expo/require-utils": "^56.1.3", "@expo/router-server": "^56.0.13", "@expo/schema-utils": "^56.0.0", "@expo/spawn-async": "^1.8.0", "@expo/ws-tunnel": "^2.0.0", "@expo/xcpretty": "^4.4.4", "@react-native/dev-middleware": "0.85.3", "accepts": "^1.3.8", "arg": "^5.0.2", "bplist-creator": "0.1.0", "bplist-parser": "^0.3.1", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "dnssd-advertise": "^1.1.4", "expo-server": "^56.0.5", "fetch-nodeshim": "^0.4.10", "getenv": "^2.0.0", "glob": "^13.0.0", "lan-network": "^0.2.1", "multitars": "^1.0.0", "node-forge": "^1.3.3", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^4.0.4", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "resolve-from": "^5.0.0", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "terminal-link": "^2.1.1", "toqr": "^0.1.1", "wrap-ansi": "^7.0.0", "ws": "^8.12.1", "zod": "^3.25.76" }, "peerDependencies": { "expo": "*", "expo-router": "*", "react-native": "*" }, "optionalPeers": ["expo-router", "react-native"], "bin": { "expo-internal": "main.js" } }, "sha512-ik6++YzURB2d/mSEfYwbuNa19uOWZwVHy9THCQ/pPr6mzplKl4w9I4nlYF9lx7oluNC3NvxsSZ8/rgpVKEOJTA=="], + "@expo/cli": ["@expo/cli@56.1.16", "", { "dependencies": { "@expo/code-signing-certificates": "^0.0.6", "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.9", "@expo/devcert": "^1.2.1", "@expo/env": "~2.3.0", "@expo/image-utils": "^0.10.1", "@expo/inline-modules": "^0.0.12", "@expo/json-file": "^10.2.0", "@expo/log-box": "^56.0.13", "@expo/metro": "~56.0.0", "@expo/metro-config": "~56.0.14", "@expo/metro-file-map": "^56.0.3", "@expo/osascript": "^2.6.0", "@expo/package-manager": "^1.12.1", "@expo/plist": "^0.7.0", "@expo/prebuild-config": "^56.0.16", "@expo/require-utils": "^56.1.3", "@expo/router-server": "^56.0.14", "@expo/schema-utils": "^56.0.0", "@expo/spawn-async": "^1.8.0", "@expo/ws-tunnel": "^2.0.0", "@expo/xcpretty": "^4.4.4", "@react-native/dev-middleware": "0.85.3", "accepts": "^1.3.8", "arg": "^5.0.2", "bplist-creator": "0.1.0", "bplist-parser": "^0.3.1", "chalk": "^4.0.0", "ci-info": "^3.3.0", "compression": "^1.7.4", "connect": "^3.7.0", "debug": "^4.3.4", "dnssd-advertise": "^1.1.4", "expo-server": "^56.0.5", "fetch-nodeshim": "^0.4.10", "getenv": "^2.0.0", "glob": "^13.0.0", "lan-network": "^0.2.1", "multitars": "^1.0.0", "node-forge": "^1.3.3", "npm-package-arg": "^11.0.0", "ora": "^3.4.0", "picomatch": "^4.0.4", "pretty-format": "^29.7.0", "progress": "^2.0.3", "prompts": "^2.3.2", "resolve-from": "^5.0.0", "semver": "^7.6.0", "send": "^0.19.0", "slugify": "^1.3.4", "stacktrace-parser": "^0.1.10", "structured-headers": "^0.4.1", "terminal-link": "^2.1.1", "toqr": "^0.1.1", "wrap-ansi": "^7.0.0", "ws": "^8.12.1", "zod": "^3.25.76" }, "peerDependencies": { "expo": "*", "expo-router": "*", "react-native": "*" }, "optionalPeers": ["expo-router", "react-native"], "bin": { "expo-internal": "main.js" } }, "sha512-VBQn0mqAwc67b9Cn0RVXyeodghomAx5xGRhA/bXaQzuxDjMQk0zIOb6pXMZX7yiIwJW66UZt/zQiJNSv6aWJYw=="], "@expo/code-signing-certificates": ["@expo/code-signing-certificates@0.0.6", "", { "dependencies": { "node-forge": "^1.3.3" } }, "sha512-iNe0puxwBNEcuua9gmTGzq+SuMDa0iATai1FlFTMHJ/vUmKvN/V//drXoLJkVb5i5H3iE/n/qIJxyoBnXouD0w=="], "@expo/config": ["@expo/config@56.0.9", "", { "dependencies": { "@expo/config-plugins": "~56.0.8", "@expo/config-types": "^56.0.5", "@expo/json-file": "^10.2.0", "@expo/require-utils": "^56.1.3", "deepmerge": "^4.3.1", "getenv": "^2.0.0", "glob": "^13.0.0", "resolve-workspace-root": "^2.0.0", "semver": "^7.6.0", "slugify": "^1.3.4" } }, "sha512-/lqFeWGSrhpKJVP8tTN8LjuoIe8u8q2w7FzBL0C+wHgl+WM8l1qUIEYWy/sMvsG/NbpUIUsDHJRhQvOkU58eIw=="], - "@expo/config-plugins": ["@expo/config-plugins@56.0.8", "", { "dependencies": { "@expo/config-types": "^56.0.5", "@expo/json-file": "~10.2.0", "@expo/plist": "^0.7.0", "@expo/require-utils": "^56.1.3", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", "getenv": "^2.0.0", "glob": "^13.0.0", "semver": "^7.5.4", "slugify": "^1.6.6", "xcode": "^3.0.1", "xml2js": "0.6.0" } }, "sha512-phTuyBhgVLfqUHMjQkAfRtbyoY6yTxoKja1awtpVnEkoJDxPJuXx1KX5uvq1eZtt4bJQ08OBJ6P95INqRSHpRg=="], + "@expo/config-plugins": ["@expo/config-plugins@56.0.9", "", { "dependencies": { "@expo/config-types": "^56.0.6", "@expo/json-file": "~10.2.0", "@expo/plist": "^0.7.0", "@expo/require-utils": "^56.1.3", "@expo/sdk-runtime-versions": "^1.0.0", "chalk": "^4.1.2", "debug": "^4.3.5", "getenv": "^2.0.0", "glob": "^13.0.0", "semver": "^7.5.4", "slugify": "^1.6.6", "xcode": "^3.0.1", "xml2js": "0.6.0" } }, "sha512-/6a/S9USwx8OC9tGjHxbviLFiBHyueN3aoNWMLvWDEJoZ1CIVW800ZBzwXq/FYNK2qzcN1LxFmQtzD1zeFQKNA=="], - "@expo/config-types": ["@expo/config-types@56.0.5", "", {}, "sha512-GsAHO/MwW9ZRdgnmyfRXqVGLCP/zejD6rWnp5OROp8mBGRObKm4HfrjlUyT1skjMwCj1OrURx9ZfIc6yeBAkIA=="], + "@expo/config-types": ["@expo/config-types@56.0.6", "", {}, "sha512-4Y6Aum5J4Re5NnxGVofRNe1aDwUBOmWhQYkynZsqzRtX/zEA1ADUeyHXuEckv9YD9djiyT7bKtLt5gKL3mA6VQ=="], "@expo/devcert": ["@expo/devcert@1.2.1", "", { "dependencies": { "@expo/sudo-prompt": "^9.3.1", "debug": "^3.1.0" } }, "sha512-qC4eaxmKMTmJC2ahwyui6ud8f3W60Ss7pMkpBq40Hu3zyiAaugPXnZ24145U7K36qO9UHdZUVxsCvIpz2RYYCA=="], @@ -320,7 +320,7 @@ "@expo/image-utils": ["@expo/image-utils@0.10.1", "", { "dependencies": { "@expo/require-utils": "^56.1.3", "@expo/spawn-async": "^1.8.0", "chalk": "^4.0.0", "getenv": "^2.0.0", "jimp-compact": "0.16.1", "parse-png": "^2.1.0", "semver": "^7.6.0" } }, "sha512-YDeefvmYdihS7Wp3ESDUVnOgOSWmj2Cczm9lVNDdm4MqQLdAKm/LPYg83HtFQPfefRlAxyHrQR/O9kIXN9C1Wg=="], - "@expo/inline-modules": ["@expo/inline-modules@0.0.11", "", { "dependencies": { "@expo/config-plugins": "~56.0.8" } }, "sha512-ZlIfKL61DPnW8YUTdMEjMA31xrDDV6p7Xi8rWYyhd5qXBV8MwGwjuJ7vKeaVaMjRqxJk1N9lv7zlfyvQpRCNNw=="], + "@expo/inline-modules": ["@expo/inline-modules@0.0.12", "", { "dependencies": { "@expo/config-plugins": "~56.0.9" } }, "sha512-SNIZr/HWfIQPTZBwmukItxpc7ws1SgMUywYq1dnQvDknQDjJcuWAasIRFUjsK15yQ1xb4G5CP7VHtbN3V4lENg=="], "@expo/json-file": ["@expo/json-file@10.2.0", "", { "dependencies": { "@babel/code-frame": "^7.20.0", "json5": "^2.2.3" } }, "sha512-S6XzKe3R9GQeHiUPXc3xJjOv2VJhOEwFYf7xdC2z2cUqt3kZJ9mSO877sNQloVdnW/SUCtPY3bexlM7nwq+CAQ=="], @@ -342,7 +342,7 @@ "@expo/plist": ["@expo/plist@0.7.0", "", { "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", "xmlbuilder": "^15.1.1" } }, "sha512-vrpryU1GoqSIRNqRB2D3IjXDmzNYfiQpEF6AH/xknlD7eiYmEDt3mb26V7cLcedcPG8PY/1xWHdBXVQJfEAh6Q=="], - "@expo/prebuild-config": ["@expo/prebuild-config@56.0.15", "", { "dependencies": { "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.8", "@expo/config-types": "^56.0.5", "@expo/image-utils": "^0.10.1", "@expo/json-file": "^10.2.0", "@react-native/normalize-colors": "0.85.3", "debug": "^4.3.1", "expo-modules-autolinking": "~56.0.15", "resolve-from": "^5.0.0", "semver": "^7.6.0" } }, "sha512-6GC+QjdCkzp/5wjsqgfu/B2+2yf5MyZMtzf9szIPrLt9uKhzV2PdyM0vU0kvbj1YT8weHCtO7bsrzimman0sjA=="], + "@expo/prebuild-config": ["@expo/prebuild-config@56.0.16", "", { "dependencies": { "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.9", "@expo/config-types": "^56.0.6", "@expo/image-utils": "^0.10.1", "@expo/json-file": "^10.2.0", "@react-native/normalize-colors": "0.85.3", "debug": "^4.3.1", "expo-modules-autolinking": "~56.0.16", "resolve-from": "^5.0.0", "semver": "^7.6.0" } }, "sha512-ce9ENfPWO4WUWUVQz0OaqL3KYZ7YofP8O35ncnn7CHCaKwQ7BqxcCGJbh+qvP1UjlWeNB3CjHPrXXJ3bnZwlJw=="], "@expo/react-native-action-sheet": ["@expo/react-native-action-sheet@4.1.1", "", { "dependencies": { "@types/hoist-non-react-statics": "^3.3.1", "hoist-non-react-statics": "^3.3.0" }, "peerDependencies": { "react": ">=18.0.0" } }, "sha512-4KRaba2vhqDRR7ObBj6nrD5uJw8ePoNHdIOMETTpgGTX7StUbrF4j/sfrP1YUyaPEa1P8FXdwG6pB+2WtrJd1A=="], @@ -358,7 +358,7 @@ "@expo/sudo-prompt": ["@expo/sudo-prompt@9.3.2", "", {}, "sha512-HHQigo3rQWKMDzYDLkubN5WQOYXJJE2eNqIQC2axC2iO3mHdwnIR7FgZVvHWtBwAdzBgAP0ECp8KqS8TiMKvgw=="], - "@expo/ui": ["@expo/ui@56.0.17", "", { "dependencies": { "sf-symbols-typescript": "^2.1.0", "vaul": "^1.1.2" }, "peerDependencies": { "@babel/core": "*", "expo": "*", "react": "*", "react-dom": "*", "react-native": "*", "react-native-reanimated": "*", "react-native-worklets": "*" }, "optionalPeers": ["@babel/core", "react-dom", "react-native-reanimated", "react-native-worklets"] }, "sha512-Jos9oGzurMDngrSWJesX3LSykPRvkUdANxtq2sPKBc6bAjadtZJCkthAYMaE3P9L5xrzbNRFo+2O76cRP0iYPw=="], + "@expo/ui": ["@expo/ui@56.0.18", "", { "dependencies": { "sf-symbols-typescript": "^2.1.0", "vaul": "^1.1.2" }, "peerDependencies": { "@babel/core": "*", "expo": "*", "react": "*", "react-dom": "*", "react-native": "*", "react-native-reanimated": "*", "react-native-worklets": "*" }, "optionalPeers": ["@babel/core", "react-dom", "react-native-reanimated", "react-native-worklets"] }, "sha512-2XgH5obigGtXm8zlb/V3g87NSiIcBcJ1xoQOEQYPoExL1DCNsHzaIecTh1XG/f/45ardo4OZNJwpbfYJ9X3qrQ=="], "@expo/vector-icons": ["@expo/vector-icons@15.1.1", "", { "peerDependencies": { "expo-font": ">=14.0.4", "react": "*", "react-native": "*" } }, "sha512-Iu2VkcoI5vygbtYngm7jb4ifxElNVXQYdDrYkT7UCEIiKLeWnQY0wf2ZhHZ+Wro6Sc5TaumpKUOqDRpLi5rkvw=="], @@ -418,7 +418,7 @@ "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.31", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw=="], - "@nodable/entities": ["@nodable/entities@2.1.0", "", {}, "sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA=="], + "@nodable/entities": ["@nodable/entities@2.2.0", "", {}, "sha512-9uGyhaQavEUMC8AIddIjau4NsnsXhou+j5sBAGojCM1oxmQpVKTWR/9JxABD6UAv12vpIms55fPZKFQEhG6uBg=="], "@nodelib/fs.scandir": ["@nodelib/fs.scandir@2.1.5", "", { "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g=="], @@ -426,47 +426,47 @@ "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="], - "@radix-ui/primitive": ["@radix-ui/primitive@1.1.3", "", {}, "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg=="], + "@radix-ui/primitive": ["@radix-ui/primitive@1.1.4", "", {}, "sha512-7AdCK9PQyiljKoBDbN8OuctCbd/esdwZPQ8RtOE3SsyQtUpiPb+ND75q0jEhC1m1ecBI0MFNeLJvwIh9iKHRcQ=="], - "@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.7", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw=="], + "@radix-ui/react-collection": ["@radix-ui/react-collection@1.1.10", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-slot": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-IVVz4EvBcKjrzKgof714qDnz/SzQAkLA2Emh5edlHbgcE6fNd3Un6CJLlaYcnm8N4JmAtzQgse4dOKxcD2yc9g=="], - "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg=="], + "@radix-ui/react-compose-refs": ["@radix-ui/react-compose-refs@1.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA=="], - "@radix-ui/react-context": ["@radix-ui/react-context@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA=="], + "@radix-ui/react-context": ["@radix-ui/react-context@1.1.4", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-QwH4PO5urrbO+FaGd5Aglg+YJgWTyyuZ3g/6mKvsqraLkglDdckw9JafgL5McL5VEJ6EPNduPaT3ZE9BttDAqg=="], - "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-dismissable-layer": "1.1.11", "@radix-ui/react-focus-guards": "1.1.3", "@radix-ui/react-focus-scope": "1.1.7", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-portal": "1.1.9", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-slot": "1.2.3", "@radix-ui/react-use-controllable-state": "1.2.2", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.6.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw=="], + "@radix-ui/react-dialog": ["@radix-ui/react-dialog@1.1.17", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-dismissable-layer": "1.1.13", "@radix-ui/react-focus-guards": "1.1.4", "@radix-ui/react-focus-scope": "1.1.10", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-portal": "1.1.12", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-slot": "1.3.0", "@radix-ui/react-use-controllable-state": "1.2.3", "aria-hidden": "^1.2.4", "react-remove-scroll": "^2.7.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-TDTYmpdq8dI2+Xgvgj9AJ8Ghqq+Eph/TRVEdaFQPDItIY+6QSkU7MJMeevw1568Yw/2Ijz8BTphPSP2XejKphw=="], - "@radix-ui/react-direction": ["@radix-ui/react-direction@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw=="], + "@radix-ui/react-direction": ["@radix-ui/react-direction@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA=="], - "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-escape-keydown": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg=="], + "@radix-ui/react-dismissable-layer": ["@radix-ui/react-dismissable-layer@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-escape-keydown": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-2v+zNAWWe0ySxgC0D0yeXMPQ23xZVgXZTerTz+JKlmdRj6gfTqmCcR29jb6d290DezXPGgruHWDX/vYUebtErg=="], - "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.3", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw=="], + "@radix-ui/react-focus-guards": ["@radix-ui/react-focus-guards@1.1.4", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q=="], - "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.7", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw=="], + "@radix-ui/react-focus-scope": ["@radix-ui/react-focus-scope@1.1.10", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-Fas/lXQqhVvqwAb64s5RFeHiHYElZ6SUQbZaNd6EkfhP/Al7wTIQ9WIR4QVX475tlu5yFCEdDcJH6/UwsZjMWw=="], - "@radix-ui/react-id": ["@radix-ui/react-id@1.1.1", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg=="], + "@radix-ui/react-id": ["@radix-ui/react-id@1.1.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA=="], - "@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.9", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ=="], + "@radix-ui/react-portal": ["@radix-ui/react-portal@1.1.12", "", { "dependencies": { "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m309havGzsjLHHaIX50G5PlvRs3xkgPCsGk/5PTvYm8D5q33yG0J7w/712PTOhid7NTaFETtnSXjngHQavvhVw=="], - "@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.5", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ=="], + "@radix-ui/react-presence": ["@radix-ui/react-presence@1.1.6", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-zdTk4PlUO0E18HnZ3wYbW0KkJJxWCdiNYp6g6X1PtONFhxVkg01vliTJAmwIszU6mHiyBOoW9P0rAugl5/hULQ=="], - "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.3", "", { "dependencies": { "@radix-ui/react-slot": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ=="], + "@radix-ui/react-primitive": ["@radix-ui/react-primitive@2.1.6", "", { "dependencies": { "@radix-ui/react-slot": "1.3.0" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-wetd0QI77DbvrPpTAvH1SqOxsYF2wZe5TNxqwOd5Ty4XDpV3dpV0s8K/1MGMJBeY5o7lg8ub5VIt1Ub+yVen6g=="], - "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.11", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-collection": "1.1.7", "@radix-ui/react-compose-refs": "1.1.2", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-use-callback-ref": "1.1.1", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA=="], + "@radix-ui/react-roving-focus": ["@radix-ui/react-roving-focus@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-collection": "1.1.10", "@radix-ui/react-compose-refs": "1.1.3", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-use-callback-ref": "1.1.2", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-9gkwneI0guf8JDmrFxPjJF6Ozzgioyw+/lonYNCwefS9ZHA05er0BVHiXr+LbWGHxUfczvMY6G1oiZZi1VzjRw=="], - "@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.4", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA=="], + "@radix-ui/react-slot": ["@radix-ui/react-slot@1.3.0", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.3" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA=="], - "@radix-ui/react-tabs": ["@radix-ui/react-tabs@1.1.13", "", { "dependencies": { "@radix-ui/primitive": "1.1.3", "@radix-ui/react-context": "1.1.2", "@radix-ui/react-direction": "1.1.1", "@radix-ui/react-id": "1.1.1", "@radix-ui/react-presence": "1.1.5", "@radix-ui/react-primitive": "2.1.3", "@radix-ui/react-roving-focus": "1.1.11", "@radix-ui/react-use-controllable-state": "1.2.2" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A=="], + "@radix-ui/react-tabs": ["@radix-ui/react-tabs@1.1.15", "", { "dependencies": { "@radix-ui/primitive": "1.1.4", "@radix-ui/react-context": "1.1.4", "@radix-ui/react-direction": "1.1.2", "@radix-ui/react-id": "1.1.2", "@radix-ui/react-presence": "1.1.6", "@radix-ui/react-primitive": "2.1.6", "@radix-ui/react-roving-focus": "1.1.13", "@radix-ui/react-use-controllable-state": "1.2.3" }, "peerDependencies": { "@types/react": "*", "@types/react-dom": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react", "@types/react-dom"] }, "sha512-kxc9gI6/HfcU4nfMMVS3AmQK414kbU1IE6UCJmMmxjhO3cRPXOyYnmvyKD+ODt7q56nRq9l7Wovi6uaGwKgMlg=="], - "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg=="], + "@radix-ui/react-use-callback-ref": ["@radix-ui/react-use-callback-ref@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw=="], - "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.2", "", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.2", "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg=="], + "@radix-ui/react-use-controllable-state": ["@radix-ui/react-use-controllable-state@1.2.3", "", { "dependencies": { "@radix-ui/react-use-effect-event": "0.0.3", "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA=="], - "@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.2", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA=="], + "@radix-ui/react-use-effect-event": ["@radix-ui/react-use-effect-event@0.0.3", "", { "dependencies": { "@radix-ui/react-use-layout-effect": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA=="], - "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.1", "", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.1" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g=="], + "@radix-ui/react-use-escape-keydown": ["@radix-ui/react-use-escape-keydown@1.1.2", "", { "dependencies": { "@radix-ui/react-use-callback-ref": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-2uVLvLjgO7NZCWw01/FdqRwmA42J0BcjPMUCA+koFEOAb+zjqIP7SiFz/7zWPrKnVmSqr76Omq2ALyCuX4dhLw=="], - "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.1", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ=="], + "@radix-ui/react-use-layout-effect": ["@radix-ui/react-use-layout-effect@1.1.2", "", { "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA=="], "@react-native-community/cli": ["@react-native-community/cli@20.1.3", "", { "dependencies": { "@react-native-community/cli-clean": "20.1.3", "@react-native-community/cli-config": "20.1.3", "@react-native-community/cli-doctor": "20.1.3", "@react-native-community/cli-server-api": "20.1.3", "@react-native-community/cli-tools": "20.1.3", "@react-native-community/cli-types": "20.1.3", "commander": "^9.4.1", "deepmerge": "^4.3.0", "execa": "^5.0.0", "find-up": "^5.0.0", "fs-extra": "^8.1.0", "graceful-fs": "^4.1.3", "picocolors": "^1.1.1", "prompts": "^2.4.2", "semver": "^7.5.2" }, "bin": { "rnc-cli": "build/bin.js" } }, "sha512-sLo8cu9JyFNfuuF1C+8NJ4DHE/PEFaXGd4enkcxi/OJjGG8+sOQrdjNQ4i+cVh/2c+ah1mEMwsYjc3z0+/MqSg=="], @@ -504,7 +504,7 @@ "@react-native/babel-plugin-codegen": ["@react-native/babel-plugin-codegen@0.85.3", "", { "dependencies": { "@babel/traverse": "^7.29.0", "@react-native/codegen": "0.85.3" } }, "sha512-Wc94zGfeFG8Njf9SHMPfYZP04kjigkOps6F1TYTvd7ZVXuGxqseCDgxc50LWcOhOCLypI9n3oVVqz81C3p44ZA=="], - "@react-native/babel-preset": ["@react-native/babel-preset@0.85.3", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.25.2", "@babel/plugin-transform-react-jsx-self": "^7.24.7", "@babel/plugin-transform-react-jsx-source": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@react-native/babel-plugin-codegen": "0.85.3", "babel-plugin-syntax-hermes-parser": "0.33.3", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" } }, "sha512-fD7fxEhkJB/aF57tWoXjaAWpklfrExYZS3k6aXPP3BQ77DZY7gvf/b7dbirwjID6NVnP1JDRJyTuPBGr0K/vlw=="], + "@react-native/babel-preset": ["@react-native/babel-preset@0.86.0", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/plugin-proposal-export-default-from": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-default-from": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-transform-async-generator-functions": "^7.25.4", "@babel/plugin-transform-async-to-generator": "^7.24.7", "@babel/plugin-transform-block-scoping": "^7.25.0", "@babel/plugin-transform-class-properties": "^7.25.4", "@babel/plugin-transform-classes": "^7.25.4", "@babel/plugin-transform-destructuring": "^7.24.8", "@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-for-of": "^7.24.7", "@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", "@babel/plugin-transform-optional-catch-binding": "^7.24.7", "@babel/plugin-transform-optional-chaining": "^7.24.8", "@babel/plugin-transform-private-methods": "^7.24.7", "@babel/plugin-transform-private-property-in-object": "^7.24.7", "@babel/plugin-transform-react-display-name": "^7.24.7", "@babel/plugin-transform-react-jsx": "^7.25.2", "@babel/plugin-transform-react-jsx-self": "^7.24.7", "@babel/plugin-transform-react-jsx-source": "^7.24.7", "@babel/plugin-transform-regenerator": "^7.24.7", "@babel/plugin-transform-runtime": "^7.24.7", "@babel/plugin-transform-typescript": "^7.25.2", "@babel/plugin-transform-unicode-regex": "^7.24.7", "@react-native/babel-plugin-codegen": "0.86.0", "babel-plugin-syntax-hermes-parser": "0.36.0", "babel-plugin-transform-flow-enums": "^0.0.2", "react-refresh": "^0.14.0" } }, "sha512-bYQcWiPySNvF4dns9Ls9gMmwgq66ohvM9Fwc/Kn8r85t66UNHxch3p1QwPiSorDelFauZwJbgo9+ReibTgvpbA=="], "@react-native/codegen": ["@react-native/codegen@0.85.3", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/parser": "^7.29.0", "hermes-parser": "0.33.3", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "tinyglobby": "^0.2.15", "yargs": "^17.6.2" } }, "sha512-/JkS1lGLyzBWP1FbgDwaqEf7qShIC6pUC1M0a/YMAd/v4iqR24MRkQWe7jkYvcBQ2LpEhs5NGE9InhxSv21zCA=="], @@ -520,21 +520,21 @@ "@react-native/js-polyfills": ["@react-native/js-polyfills@0.85.3", "", {}, "sha512-U2+aMshIXf1uFn77tpBb/xhHWB9vkVrMpt7kkucAugF8hJKYTDGB587X7WwelHduK2KBfhl4giSv0rzZGoef9A=="], - "@react-native/metro-babel-transformer": ["@react-native/metro-babel-transformer@0.85.3", "", { "dependencies": { "@babel/core": "^7.25.2", "@react-native/babel-preset": "0.85.3", "hermes-parser": "0.33.3", "nullthrows": "^1.1.1" } }, "sha512-omuKq+r7jM4XvCMIlNMPP7Up3SyB8o5EAdZtF7YXniKyq7UOMBqhYHFqgsdOXr0lT+3ADf7VCJG3sb82jlBrrQ=="], + "@react-native/metro-babel-transformer": ["@react-native/metro-babel-transformer@0.86.0", "", { "dependencies": { "@babel/core": "^7.25.2", "@react-native/babel-preset": "0.86.0", "hermes-parser": "0.36.0", "nullthrows": "^1.1.1" } }, "sha512-SjKej3E5qIahqo/G+rSOrmJUQM44RyKtWtO+VfmKAAMoJWkBFomM22hTLKCIS5cdbIAJ9COAmU+KAi2wVSO0wQ=="], - "@react-native/metro-config": ["@react-native/metro-config@0.85.3", "", { "dependencies": { "@react-native/js-polyfills": "0.85.3", "@react-native/metro-babel-transformer": "0.85.3", "metro-config": "^0.84.3", "metro-runtime": "^0.84.3" } }, "sha512-sVo6HepUmCcpdfozEf91lA0FjpLNNZYu/Zi9FiYiAQTK8pzATXDVTqhvdxpFrQn435p5eUTSbllvbH/KN+bnyA=="], + "@react-native/metro-config": ["@react-native/metro-config@0.86.0", "", { "dependencies": { "@react-native/js-polyfills": "0.86.0", "@react-native/metro-babel-transformer": "0.86.0", "metro-config": "^0.84.3", "metro-runtime": "^0.84.3" } }, "sha512-7v+xbTeEci9ZcQ/Z1OqI4RXcqN69wSMDYL5BAMvOReZ7U04+aDQ0/SQhClYPn6x2/RxM4WzMKSAuNyLKqvYVtw=="], "@react-native/normalize-colors": ["@react-native/normalize-colors@0.85.3", "", {}, "sha512-hj0PScZEhIbcOvQV5yMKX3ha4XEIOy/SVE1Rrpp0beW0dpNLOgSC7KDxGewmDnIHK9YdQUXGY9eMEfShUMIaZw=="], - "@react-navigation/core": ["@react-navigation/core@7.17.5", "", { "dependencies": { "@react-navigation/routers": "^7.5.5", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", "query-string": "^7.1.3", "react-is": "^19.1.0", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "react": ">= 18.2.0" } }, "sha512-6fDCwDTWC7DJn0SDb9DJGRlipaygHIc+2elpZBJI6Crl/2Pu+Z1d6W4jMJ2gZO6iHKf+Pe5sUiQ/uwepGprZtg=="], + "@react-navigation/core": ["@react-navigation/core@7.21.1", "", { "dependencies": { "@react-navigation/routers": "^7.6.0", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", "query-string": "^7.1.3", "react-is": "^19.1.0", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "react": ">= 18.2.0" } }, "sha512-9eOK71VFEyJjm1bP8o4Gf7YYppWPZ+RdNIjTc+WbSM7AFEH0XXEIHkkhpIBuB416sDlRZ1CRxHk2frh1HPBZqw=="], - "@react-navigation/elements": ["@react-navigation/elements@2.9.19", "", { "dependencies": { "color": "^4.2.3", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", "@react-navigation/native": "^7.2.5", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" }, "optionalPeers": ["@react-native-masked-view/masked-view"] }, "sha512-gBUvCZuUkOGw1KpLQEZIkByUz8RYPwXeoA6mZFJy9K1mxd8GdqHDMFCIoB0lfPz9rgrHj99RvtdlGZ/ZzkZv2A=="], + "@react-navigation/elements": ["@react-navigation/elements@2.9.25", "", { "dependencies": { "color": "^4.2.3", "use-latest-callback": "^0.2.4", "use-sync-external-store": "^1.5.0" }, "peerDependencies": { "@react-native-masked-view/masked-view": ">= 0.2.0", "@react-navigation/native": "^7.3.3", "react": ">= 18.2.0", "react-native": "*", "react-native-safe-area-context": ">= 4.0.0" }, "optionalPeers": ["@react-native-masked-view/masked-view"] }, "sha512-cV7Hny55aE/uge6f4UB0pbGQbFl3XjXLMW+lTBNuJs8P7a9tuf7dkkPHxxgnLIvxE+KJVI2K8CGabfDk4Ht0Sg=="], "@react-navigation/material-top-tabs": ["@react-navigation/material-top-tabs@7.4.28", "", { "dependencies": { "@react-navigation/elements": "^2.9.19", "color": "^4.2.3", "react-native-tab-view": "^4.3.0" }, "peerDependencies": { "@react-navigation/native": "^7.2.5", "react": ">= 18.2.0", "react-native": "*", "react-native-pager-view": ">= 6.0.0", "react-native-safe-area-context": ">= 4.0.0" } }, "sha512-WZHJSGV2PQOD2Vr9LF8apGvcsbDKukzF3Fhh8xVNIesqaSi9TPProv4dRw6YkenUkjvFVZYkOjvwAJOToePVpA=="], - "@react-navigation/native": ["@react-navigation/native@7.2.5", "", { "dependencies": { "@react-navigation/core": "^7.17.5", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", "use-latest-callback": "^0.2.4" }, "peerDependencies": { "react": ">= 18.2.0", "react-native": "*" } }, "sha512-01AAUQiiHQAfTabq+ZyU1/ZWq+AbB/J3v0CB0UTJSON6M6cuadWNsbChzrZUdqQvHrXvg96U5i2PQLJzK3+zpg=="], + "@react-navigation/native": ["@react-navigation/native@7.3.3", "", { "dependencies": { "@react-navigation/core": "^7.21.1", "escape-string-regexp": "^4.0.0", "fast-deep-equal": "^3.1.3", "nanoid": "^3.3.11", "standard-navigation": "^0.0.7", "use-latest-callback": "^0.2.4" }, "peerDependencies": { "react": ">= 18.2.0", "react-native": "*" } }, "sha512-VjZngfeiyJestZPT99CKHRi3qOR6XwnEEPWb6uHF/L7fBI6RBVP842iJf61MUHRTzsWPUT+epJqdf1wm8N5YkQ=="], - "@react-navigation/routers": ["@react-navigation/routers@7.5.5", "", { "dependencies": { "nanoid": "^3.3.11" } }, "sha512-9/hhMte12Kgu+pMnLfA4EWJ0OQmIEAMVMX06FPH2yGkEQSQ3JhhCN/GkcRikzQhtEi97VYYQA15umptBUShcOQ=="], + "@react-navigation/routers": ["@react-navigation/routers@7.6.0", "", { "dependencies": { "nanoid": "^3.3.11" } }, "sha512-lblhDXfS75jLc7G2K7BZGM+7cjqQXk13X/MA4fq/12r62zM+fBhhreLzYflSitrDDXFRJpSvJXy0ziiGU04Xow=="], "@shopify/flash-list": ["@shopify/flash-list@2.0.2", "", { "dependencies": { "tslib": "2.8.1" }, "peerDependencies": { "@babel/runtime": "*", "react": "*", "react-native": "*" } }, "sha512-zhlrhA9eiuEzja4wxVvotgXHtqd3qsYbXkQ3rsBfOgbFA9BVeErpDE/yEwtlIviRGEqpuFj/oU5owD6ByaNX+w=="], @@ -550,17 +550,17 @@ "@tanstack/pacer": ["@tanstack/pacer@0.18.0", "", { "dependencies": { "@tanstack/devtools-event-client": "^0.4.0", "@tanstack/store": "^0.8.0" } }, "sha512-qhCRSFei0hokQr3xYcQXqxsRD/LKlgHCxHXtKHrQoImp4x2Zu6tUOpUGVH4y2qexIrzSu3aibQBNNfC3Eay6Mg=="], - "@tanstack/query-core": ["@tanstack/query-core@5.100.14", "", {}, "sha512-5X41dGpxgeaHISCRW2oYwcSycZeULZzAunaudXT9ov1KOTj9xwt0CH6hbwqP1/z74ZWF7rYFnDpyYH07XFcZew=="], + "@tanstack/query-core": ["@tanstack/query-core@5.101.0", "", {}, "sha512-cQetA74EB+seWySv1TTKr828TnP0u39m6LykwDXIo84SNortpDkp30TMEjkqtYCNP9c40uT/iwl6MLiufEt0Ow=="], - "@tanstack/query-persist-client-core": ["@tanstack/query-persist-client-core@5.100.14", "", { "dependencies": { "@tanstack/query-core": "5.100.14" } }, "sha512-mn60cqoQO/xB6aHxp/hxlSj5mcdcTO4tjj4SXSz5MKzkaMZnvcEGySz3+cGQOT8McREN56fL41L0eR//v5RwNw=="], + "@tanstack/query-persist-client-core": ["@tanstack/query-persist-client-core@5.101.0", "", { "dependencies": { "@tanstack/query-core": "5.101.0" } }, "sha512-LH99WepGVLwlLfuOcQcPK7f3Xg/Gf+xlMMIj9xWu/8oQ3egnDzjr+a4HvEmi6PGob5SmGXvmDKZaH5+In9dzjw=="], - "@tanstack/query-sync-storage-persister": ["@tanstack/query-sync-storage-persister@5.100.14", "", { "dependencies": { "@tanstack/query-core": "5.100.14", "@tanstack/query-persist-client-core": "5.100.14" } }, "sha512-sDsiVjLJqslUdqIANGvRyB4hYpAooYj5R1fe2EzKfrSY7XufSe+AFBvirLgX/nL2uS1JeP4XeyUuG3TM0bAN9w=="], + "@tanstack/query-sync-storage-persister": ["@tanstack/query-sync-storage-persister@5.101.0", "", { "dependencies": { "@tanstack/query-core": "5.101.0", "@tanstack/query-persist-client-core": "5.101.0" } }, "sha512-UAGbsIJe9vkV/rbFxUBOPH27Eu6K17KuVLfK1mSy8qoSUJ4qt6JKGMxA8NMUoowbPG0ZnTfRt1Y5SFsqfqlfcA=="], "@tanstack/react-pacer": ["@tanstack/react-pacer@0.19.4", "", { "dependencies": { "@tanstack/pacer": "0.18.0", "@tanstack/react-store": "^0.8.0" }, "peerDependencies": { "react": ">=16.8", "react-dom": ">=16.8" } }, "sha512-coj8ULAuR0qFpjAKD44gTgRuZyjxU6Xu+IX5MwwYvr4e61OtZcJshaExoOBKpCGde0Edb12jDnzzj2Im13Qm9Q=="], "@tanstack/react-query": ["@tanstack/react-query@5.100.14", "", { "dependencies": { "@tanstack/query-core": "5.100.14" }, "peerDependencies": { "react": "^18 || ^19" } }, "sha512-oOr6aRdSFEwWhzxEkD/9ZcItM3+LjBSkeVmadWKwUssAHTsqd/7bOjWrX4AbvEkoEhgAxzN0Xk6H/aYzXiYBAw=="], - "@tanstack/react-query-persist-client": ["@tanstack/react-query-persist-client@5.100.14", "", { "dependencies": { "@tanstack/query-persist-client-core": "5.100.14" }, "peerDependencies": { "@tanstack/react-query": "^5.100.14", "react": "^18 || ^19" } }, "sha512-lQSnbJva85o7jGcJiIDrA8s3VGGx9zaBCgAljm0H1QcScU2iaDYnPuRLg/xI0k0dC45pgg9RTvpgJx5iVHRsjA=="], + "@tanstack/react-query-persist-client": ["@tanstack/react-query-persist-client@5.101.0", "", { "dependencies": { "@tanstack/query-persist-client-core": "5.101.0" }, "peerDependencies": { "@tanstack/react-query": "^5.101.0", "react": "^18 || ^19" } }, "sha512-AUcdBgz8V6sM9axzdqkVmWjYSOETkhr6yAZSBnEFyZT2jo6vkFq3UrpRuxGs6fmhKMWv8FA+ZJGcbaKPaoAElQ=="], "@tanstack/react-store": ["@tanstack/react-store@0.8.1", "", { "dependencies": { "@tanstack/store": "0.8.1", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-XItJt+rG8c5Wn/2L/bnxys85rBpm0BfMbhb4zmPVLXAKY9POrp1xd6IbU4PKoOI+jSEGc3vntPRfLGSgXfE2Ig=="], @@ -594,7 +594,7 @@ "@types/node": ["@types/node@18.19.130", "", { "dependencies": { "undici-types": "~5.26.4" } }, "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg=="], - "@types/react": ["@types/react@19.2.15", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-eRwcGNHve+E8qtEQSSRl6urh+rFop4v8gm6O8rGv25CodbvFdLjA1vVQ1KkiFE0w0UPOnb8tDiFKL5lp0rtY5Q=="], + "@types/react": ["@types/react@19.2.17", "", { "dependencies": { "csstype": "^3.2.2" } }, "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw=="], "@types/react-test-renderer": ["@types/react-test-renderer@19.1.0", "", { "dependencies": { "@types/react": "*" } }, "sha512-XD0WZrHqjNrxA/MaR9O22w/RNidWR9YZmBdRGI7wcnWGrv/3dA8wKCJ8m63Sn+tLJhcjmuhOi629N66W6kgWzQ=="], @@ -638,7 +638,7 @@ "accepts": ["accepts@1.3.8", "", { "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" } }, "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw=="], - "acorn": ["acorn@8.16.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw=="], + "acorn": ["acorn@8.17.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg=="], "agent-base": ["agent-base@6.0.2", "", { "dependencies": { "debug": "4" } }, "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="], @@ -658,6 +658,8 @@ "anymatch": ["anymatch@3.1.3", "", { "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw=="], + "anynum": ["anynum@1.0.0", "", {}, "sha512-xjR9/zBVnUOP6ztMIIgShjsxui80nQUQH+5xJnvrYLs+90bF25/KJqaAi8mk+B4RDtX1Nspi6fmp4YTEts8SfA=="], + "appdirsjs": ["appdirsjs@1.2.7", "", {}, "sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw=="], "arg": ["arg@5.0.2", "", {}, "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="], @@ -676,7 +678,7 @@ "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], - "axios": ["axios@1.16.1", "", { "dependencies": { "follow-redirects": "^1.16.0", "form-data": "^4.0.5", "https-proxy-agent": "^5.0.1", "proxy-from-env": "^2.1.0" } }, "sha512-caYkukvroVPO8KrzuJEb50Hm07KwfBZPEC3VeFHTsqWHvKTsy54hjJz9BS/cdaypROE2rH6xvm9mHX4fgWkr3A=="], + "axios": ["axios@1.18.0", "", { "dependencies": { "follow-redirects": "^1.16.0", "form-data": "^4.0.5", "https-proxy-agent": "^5.0.1", "proxy-from-env": "^2.1.0" } }, "sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw=="], "babel-plugin-polyfill-corejs2": ["babel-plugin-polyfill-corejs2@0.4.17", "", { "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-define-polyfill-provider": "^0.6.8", "semver": "^6.3.1" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w=="], @@ -698,11 +700,11 @@ "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], - "barcode-detector": ["barcode-detector@3.1.3", "", { "dependencies": { "zxing-wasm": "3.0.3" } }, "sha512-omL3/x26oU9jlR0gUQcGdXIjQtMlrUGKF7xRFO1RwrQkRkRU7WLz0mgQEsdUtYBm2uX3JH+HQLrKlyTS/BxZRw=="], + "barcode-detector": ["barcode-detector@3.2.0", "", { "dependencies": { "zxing-wasm": "3.1.0" } }, "sha512-MrT5TT058ptG5YB157pHLfXKVpp0BKEfQBOb8QvzTbatzmLDu85JJ0Gd/sCYwbwdwStJvxsYflrSN6D6E4Ndyw=="], "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], - "baseline-browser-mapping": ["baseline-browser-mapping@2.10.32", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-wbPvpyjJPC0zdfdKXxqEL3Ea+bOMD/87X4lftiJkkaBiuG6ALQy1SLmEd7BSmVCuwCQsBrCamgBoLyfFDD1EPg=="], + "baseline-browser-mapping": ["baseline-browser-mapping@2.10.37", "", { "bin": { "baseline-browser-mapping": "dist/cli.cjs" } }, "sha512-girxaJ7WZssDOFhzCGZTDKoTa1gk6A1TbflaYTpykLJ4UU9Fz9kx1aREM8JCuoVHbL8X8T/mJg7w2oYSq72Oig=="], "big-integer": ["big-integer@1.6.52", "", {}, "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="], @@ -712,7 +714,7 @@ "bmp-js": ["bmp-js@0.1.0", "", {}, "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw=="], - "body-parser": ["body-parser@2.2.2", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^1.0.5", "debug": "^4.4.3", "http-errors": "^2.0.0", "iconv-lite": "^0.7.0", "on-finished": "^2.4.1", "qs": "^6.14.1", "raw-body": "^3.0.1", "type-is": "^2.0.1" } }, "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA=="], + "body-parser": ["body-parser@2.3.0", "", { "dependencies": { "bytes": "^3.1.2", "content-type": "^2.0.0", "debug": "^4.4.3", "http-errors": "^2.0.1", "iconv-lite": "^0.7.2", "on-finished": "^2.4.1", "qs": "^6.15.2", "raw-body": "^3.0.2", "type-is": "^2.1.0" } }, "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw=="], "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="], @@ -748,7 +750,7 @@ "camelize": ["camelize@1.0.1", "", {}, "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ=="], - "caniuse-lite": ["caniuse-lite@1.0.30001793", "", {}, "sha512-iwSsYWaCOoh26cV8NwNRViHlrfUvYsHDfRVcbtmw0Kg6PJIZZXwMkj1442FYLBGkeUf1juAsU3DTfxW579mrPA=="], + "caniuse-lite": ["caniuse-lite@1.0.30001799", "", {}, "sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw=="], "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], @@ -794,13 +796,13 @@ "connect": ["connect@3.7.0", "", { "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" } }, "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ=="], - "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="], + "content-type": ["content-type@2.0.0", "", {}, "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ=="], "convert-source-map": ["convert-source-map@2.0.0", "", {}, "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg=="], "core-js-compat": ["core-js-compat@3.49.0", "", { "dependencies": { "browserslist": "^4.28.1" } }, "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA=="], - "cosmiconfig": ["cosmiconfig@9.0.1", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-hr4ihw+DBqcvrsEDioRO31Z17x71pUYoNe/4h6Z0wB72p7MU7/9gH8Q3s12NFhHPfYBBOV3qyfUxmr/Yn3shnQ=="], + "cosmiconfig": ["cosmiconfig@9.0.2", "", { "dependencies": { "env-paths": "^2.2.1", "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", "parse-json": "^5.2.0" }, "peerDependencies": { "typescript": ">=4.9.5" }, "optionalPeers": ["typescript"] }, "sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg=="], "cross-env": ["cross-env@10.1.0", "", { "dependencies": { "@epic-web/invariant": "^1.0.0", "cross-spawn": "^7.0.6" }, "bin": { "cross-env": "dist/bin/cross-env.js", "cross-env-shell": "dist/bin/cross-env-shell.js" } }, "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw=="], @@ -830,7 +832,7 @@ "dayjs": ["dayjs@1.11.21", "", {}, "sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA=="], - "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" }, "peerDependencies": { "supports-color": "*" }, "optionalPeers": ["supports-color"] }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], "decamelize": ["decamelize@1.2.0", "", {}, "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA=="], @@ -862,7 +864,7 @@ "dlv": ["dlv@1.1.3", "", {}, "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="], - "dnssd-advertise": ["dnssd-advertise@1.1.4", "", {}, "sha512-AmGyK9WpNf06WeP5TjHZq/wNzP76OuEeaiTlKr9E/EEelYLczywUKoqRz+DPRq/ErssjT4lU+/W7wzJW+7K/ZA=="], + "dnssd-advertise": ["dnssd-advertise@1.1.6", "", {}, "sha512-Ndrrf6BMPalkQPd/zubL+4YghH2J9NspapQ09uDXwYbvOPkP0oaqf5CkcwJ0b50kS2O3ul6yVu+jz+RY62Cejg=="], "dom-accessibility-api": ["dom-accessibility-api@0.6.3", "", {}, "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w=="], @@ -878,7 +880,7 @@ "ee-first": ["ee-first@1.1.1", "", {}, "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="], - "electron-to-chromium": ["electron-to-chromium@1.5.363", "", {}, "sha512-VjUKPyWzGnT1fujlkEGC/BvN70Hh70KXtAqcmniXviYlJC/ivcT+BWGPyxWVbJZLfvtKR6dqg1L7T7pgAMBtWA=="], + "electron-to-chromium": ["electron-to-chromium@1.5.374", "", {}, "sha512-HCF5i7izveksHSGqa7mhDh6tr3Uz9Dar2RAjwuh69bw3QGPVObjQIgLwQWeO/Rxp9/r0KdboKy9RbpQDl97fjg=="], "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], @@ -926,7 +928,7 @@ "expect": ["expect@29.7.0", "", { "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", "jest-matcher-utils": "^29.7.0", "jest-message-util": "^29.7.0", "jest-util": "^29.7.0" } }, "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw=="], - "expo": ["expo@56.0.11", "", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "^56.1.15", "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.8", "@expo/devtools": "~56.0.2", "@expo/dom-webview": "~56.0.5", "@expo/fingerprint": "^0.19.4", "@expo/local-build-cache-provider": "^56.0.8", "@expo/log-box": "^56.0.13", "@expo/metro": "~56.0.0", "@expo/metro-config": "~56.0.14", "@ungap/structured-clone": "^1.3.0", "babel-preset-expo": "~56.0.15", "expo-asset": "~56.0.17", "expo-constants": "~56.0.18", "expo-file-system": "~56.0.8", "expo-font": "~56.0.6", "expo-keep-awake": "~56.0.3", "expo-modules-autolinking": "~56.0.15", "expo-modules-core": "~56.0.16", "pretty-format": "^29.7.0", "react-refresh": "^0.14.2", "whatwg-url-minimum": "^0.1.2" }, "peerDependencies": { "@expo/metro-runtime": "*", "react": "*", "react-dom": "*", "react-native": "*", "react-native-web": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/metro-runtime", "react-dom", "react-native-web", "react-native-webview"], "bin": { "expo": "bin/cli", "fingerprint": "bin/fingerprint", "expo-modules-autolinking": "bin/autolinking" } }, "sha512-YqF+q+JqfobDU5yFym3h1vQqzbl7rFiDB4wAJEyK6NK+KLeyf4pfzydQcNTyqLXQKcQBG1reBJExfDShoAYTzw=="], + "expo": ["expo@56.0.12", "", { "dependencies": { "@babel/runtime": "^7.20.0", "@expo/cli": "^56.1.16", "@expo/config": "~56.0.9", "@expo/config-plugins": "~56.0.9", "@expo/devtools": "~56.0.2", "@expo/dom-webview": "~56.0.5", "@expo/fingerprint": "^0.19.4", "@expo/local-build-cache-provider": "^56.0.8", "@expo/log-box": "^56.0.13", "@expo/metro": "~56.0.0", "@expo/metro-config": "~56.0.14", "@ungap/structured-clone": "^1.3.0", "babel-preset-expo": "~56.0.15", "expo-asset": "~56.0.17", "expo-constants": "~56.0.18", "expo-file-system": "~56.0.8", "expo-font": "~56.0.7", "expo-keep-awake": "~56.0.3", "expo-modules-autolinking": "~56.0.16", "expo-modules-core": "~56.0.17", "pretty-format": "^29.7.0", "react-refresh": "^0.14.2", "whatwg-url-minimum": "^0.1.2" }, "peerDependencies": { "@expo/metro-runtime": "*", "react": "*", "react-dom": "*", "react-native": "*", "react-native-web": "*", "react-native-webview": "*" }, "optionalPeers": ["@expo/metro-runtime", "react-dom", "react-native-web", "react-native-webview"], "bin": { "expo": "bin/cli", "fingerprint": "bin/fingerprint", "expo-modules-autolinking": "bin/autolinking" } }, "sha512-FxgdI/Yqva6iJOThZIHfvxlKPxs4EC4uScUnEswwSArR/Fj9k430O13R590LcOQTsdNsjIs+GBHwjfoAY6vmAQ=="], "expo-application": ["expo-application@56.0.3", "", { "peerDependencies": { "expo": "*" } }, "sha512-DdGGPlMuM6cSTeKhbvh6OeLr2O/+EI5BHKYrD+Do8sJPYgLwzGrgESELfyjJCpEhFzT+TgKIdmLmWXhNUQnHiw=="], @@ -934,13 +936,13 @@ "expo-audio": ["expo-audio@56.0.12", "", { "peerDependencies": { "expo": "*", "expo-asset": "*", "react": "*", "react-native": "*" } }, "sha512-ne2UIO/HsQoBL9e+tGs5N9Sf3NyW5sJMm4sDkexbSJRc2IchLDG+9Msu/+l5N4RlZ8SiF42wRyWsh/Usg+SwOw=="], - "expo-background-task": ["expo-background-task@56.0.18", "", { "dependencies": { "expo-task-manager": "~56.0.18" }, "peerDependencies": { "expo": "*" } }, "sha512-jfEvLq/hZUWkef+lOt0sbe/Jd8wnK0fMgqsZhD1ulWk1IKB0AWsjmJ0iCTDMD9L9MDztpvKf2g/ygzljmo2eGA=="], + "expo-background-task": ["expo-background-task@56.0.19", "", { "dependencies": { "expo-task-manager": "~56.0.19" }, "peerDependencies": { "expo": "*" } }, "sha512-TuFqorlz4HXtWAwQGcg+/URXpBwjwNsAxdis/6m5mhtgBIVbX2gYYv/s6eIf8lh2cAI1zFkb+/bHHuC2aOAGGA=="], "expo-blur": ["expo-blur@56.0.3", "", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-KDDtrpWc2tYlm1WCPaOgBtv+YEGqe5ELheFPIgSNgHt28NQUDcfBcFsA9Us2StDh6osmSD6NbKxOt5bU6PcDbQ=="], "expo-brightness": ["expo-brightness@56.0.5", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-AkCGW+Lj8I4o2+Yjs1bzjIJz44cgNXfAN+pf01uDwmA1/1JTIy8x1eISvmz6d2r/1OhdyBZxeDkACNLVMDx5zA=="], - "expo-build-properties": ["expo-build-properties@56.0.18", "", { "dependencies": { "@expo/schema-utils": "^56.0.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "peerDependencies": { "expo": "*" } }, "sha512-at03ytur1Vfyl9ddtRMqIdSyR/oV57GM04+NZ5rhFTF0mC7dmKzxS9RBb34KHDPdT8UwUt7KsKbzYD1lnxLAKg=="], + "expo-build-properties": ["expo-build-properties@56.0.19", "", { "dependencies": { "@expo/schema-utils": "^56.0.0", "resolve-from": "^5.0.0", "semver": "^7.6.0" }, "peerDependencies": { "expo": "*" } }, "sha512-InoviXcxWosNp4cC7L3SWoiY99Xr2HdgN+LYHb6mUm/BBVxy1mIMrZR+3PJ2gwDZzW6EJNDz8ioASWGHBTmzpA=="], "expo-camera": ["expo-camera@56.0.8", "", { "dependencies": { "barcode-detector": "^3.0.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-UDOpUUMisFRmCv1XQV1MJCKGAH2CsIC1Rs6P9Bbc6JLVmbxEKAd5dK68y6cScOdWURxVfJ0PRcjYnSuc8ayyIQ=="], @@ -962,7 +964,7 @@ "expo-file-system": ["expo-file-system@56.0.8", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-NrH41/8snGIBSbYicwVLB4txPdgCATd7ZYhMAGS3YJZ9GbnduhlAoV4/YCbGayjrbpE9bJb/6wegPL/zmvRMnQ=="], - "expo-font": ["expo-font@56.0.6", "", { "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-D4s72Aei844C2s8Vy61qMr6wLEjv6BMrXA1oyRQ0x8LJBbpm5gyogUohc0lABUURVLCqsnBIDdztegl3hktmmg=="], + "expo-font": ["expo-font@56.0.7", "", { "dependencies": { "fontfaceobserver": "^2.1.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-hpU/vRwPzsby9lPGkA4blDqLIIXYzoWnCZHr6PxvcWbY/uPObAiyhh6q+e0WYsB65SthK+PLH95jEnVag7fwEg=="], "expo-glass-effect": ["expo-glass-effect@56.0.4", "", { "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-xI9rXtDwi7RW82uAlfyaXO6+k21ApWJ2tHAWYqPr/FjfmZbKsgNJ4Q0iZzGPCwboqjTGxaRZ61SZxBl8hDt5iA=="], @@ -980,19 +982,19 @@ "expo-localization": ["expo-localization@56.0.6", "", { "dependencies": { "rtl-detect": "^1.0.2" }, "peerDependencies": { "expo": "*", "react": "*" } }, "sha512-zzBVoUFHCVNBywcxGsspoZeIXebihOo/AnmQYE4jMv8gHCSKlLNFT+ft+0+mWcZCMs9necvUs8S8TDonAu/xBA=="], - "expo-location": ["expo-location@56.0.17", "", { "dependencies": { "@expo/image-utils": "^0.10.1" }, "peerDependencies": { "expo": "*" } }, "sha512-3kEONgFApqGzuRhgWyYGb/nXK+rYaeuHtcCYkuVNbrDSlHYYe+mgQPeM4Iuqv43Fihmp0mKsNtq7zX030nE+VA=="], + "expo-location": ["expo-location@56.0.18", "", { "dependencies": { "@expo/image-utils": "^0.10.1" }, "peerDependencies": { "expo": "*" } }, "sha512-6xP0UwGy8a7EEHAMeigYAp3HNo3yWHAg05tVPUfwrOWepWPpFXmjsfUBUxQdkpfpjddJ9r+f4PplxZqKI0LtjA=="], "expo-manifests": ["expo-manifests@56.0.4", "", { "dependencies": { "expo-json-utils": "~56.0.0" }, "peerDependencies": { "expo": "*" } }, "sha512-Fokawl2UkiExIF0bqGoblRFA8lYpROVD+EpvDwSW4LgqQyPwNua1gLSgHZjdl5GsVugfRMMWE3LHaibDyX93hw=="], - "expo-modules-autolinking": ["expo-modules-autolinking@56.0.15", "", { "dependencies": { "@expo/require-utils": "^56.1.3", "@expo/spawn-async": "^1.8.0", "chalk": "^4.1.0", "commander": "^7.2.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, "sha512-WqpBFwLzn7DsrUkWltIjVmAjwuI1VdQ2jRMlvk1nh2kVadwdJBkSjUBQWRifsEePNhiMT/rFOovBolUU/ARt5w=="], + "expo-modules-autolinking": ["expo-modules-autolinking@56.0.16", "", { "dependencies": { "@expo/require-utils": "^56.1.3", "@expo/spawn-async": "^1.8.0", "chalk": "^4.1.0", "commander": "^7.2.0" }, "bin": { "expo-modules-autolinking": "bin/expo-modules-autolinking.js" } }, "sha512-9JnL4N46P8ubDpDIfWolDn7nxU2j1rY67xY/dNVuyH0m+HG+r/JI16VYtjIf4COpZtEuFo4D3h3MBeFzGucMnw=="], - "expo-modules-core": ["expo-modules-core@56.0.16", "", { "dependencies": { "@expo/expo-modules-macros-plugin": "0.2.2", "expo-modules-jsi": "~56.0.9", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*", "react-native-worklets": "^0.7.4 || ^0.8.0" }, "optionalPeers": ["react-native-worklets"] }, "sha512-IVdT0CnqOpQCPdemA5rb50CPbbhWeJePnvuH0yUmOmyMkNky8WVOdRQtVicoIv4CCG5hDrzPIxULD4YOHZ5CHg=="], + "expo-modules-core": ["expo-modules-core@56.0.17", "", { "dependencies": { "@expo/expo-modules-macros-plugin": "0.2.2", "expo-modules-jsi": "~56.0.10", "invariant": "^2.2.4" }, "peerDependencies": { "react": "*", "react-native": "*", "react-native-worklets": "^0.7.4 || ^0.8.0" }, "optionalPeers": ["react-native-worklets"] }, "sha512-5J8whnT7Ccp+BrFClLmpF76omBqn95VZExroTm01Dgjm4vpty1Rb7U3we+ZUceNHtRd07Lw30u7FNfDgIhEbRQ=="], - "expo-modules-jsi": ["expo-modules-jsi@56.0.9", "", { "peerDependencies": { "react-native": "*" } }, "sha512-2lfDkRcsP/Qh2upS+nu0MS0tfGsghc6ehTivzbgM5nJz0MGYhAJxCJSeendWM+aOQutQAwzsoxrNT0nW8lRAwA=="], + "expo-modules-jsi": ["expo-modules-jsi@56.0.10", "", { "peerDependencies": { "react-native": "*" } }, "sha512-fHZcFpYO/o62GYa6fJyAQJZcAShzhoN0iMMDzbr7vD3ewET6e1vAlTonbEakN9F0VHEgBFJ4NREy87uwVcpCuA=="], - "expo-notifications": ["expo-notifications@56.0.17", "", { "dependencies": { "@expo/image-utils": "^0.10.1", "abort-controller": "^3.0.0", "badgin": "^1.1.5", "expo-application": "~56.0.3", "expo-constants": "~56.0.18" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-Yn6JUKmoBDkQeznbuUn4cHF2u44r1ErJTneW65MBFt7NLG8U8/VGQ4bBVwswm5nPH1/V92UoXPgvCssScPFRDg=="], + "expo-notifications": ["expo-notifications@56.0.18", "", { "dependencies": { "@expo/image-utils": "^0.10.1", "abort-controller": "^3.0.0", "badgin": "^1.1.5", "expo-application": "~56.0.3", "expo-constants": "~56.0.18" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-HHnrwyCLC5srFojcHYS2KskbNroy9o2fwPKdyhjrdjjrBu4sNRKm4LepcuZjDy98cZKEm89WIPW8O45vut8Rgw=="], - "expo-router": ["expo-router@56.2.10", "", { "dependencies": { "@expo/log-box": "^56.0.13", "@expo/metro-runtime": "^56.0.15", "@expo/schema-utils": "^56.0.0", "@expo/ui": "^56.0.17", "@radix-ui/react-slot": "^1.2.0", "@radix-ui/react-tabs": "^1.1.12", "@react-native-masked-view/masked-view": "^0.3.2", "@testing-library/jest-dom": "^6.9.1", "@testing-library/user-event": "^14.6.1", "client-only": "^0.0.1", "color": "^4.2.3", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "expo-glass-effect": "^56.0.4", "expo-server": "^56.0.5", "expo-symbols": "^56.0.6", "fast-deep-equal": "^3.1.3", "invariant": "^2.2.4", "nanoid": "^3.3.8", "query-string": "^7.1.3", "react-fast-compare": "^3.2.2", "react-is": "^19.1.0", "react-native-drawer-layout": "^4.2.2", "react-native-screens": "^4.25.2", "server-only": "^0.0.1", "sf-symbols-typescript": "^2.1.0", "shallowequal": "^1.1.0", "standard-navigation": "^0.0.5", "vaul": "^1.1.2" }, "peerDependencies": { "@testing-library/react-native": ">= 13.2.0", "expo": "*", "expo-constants": "^56.0.18", "expo-linking": "^56.0.14", "react": "*", "react-dom": "*", "react-native": "*", "react-native-gesture-handler": "*", "react-native-reanimated": "*", "react-native-safe-area-context": ">= 5.4.0", "react-native-web": "*", "react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4" }, "optionalPeers": ["@testing-library/react-native", "react-dom", "react-native-gesture-handler", "react-native-reanimated", "react-native-web", "react-server-dom-webpack"] }, "sha512-u7WcdsFAjSrQS7Bdb1VbNPE3xNcd/BZ6qXSS31UAJKhaYIb+ik3jJSy/W5kY3qKipwbwlo3CSb1WnZ2XYs7F+Q=="], + "expo-router": ["expo-router@56.2.11", "", { "dependencies": { "@expo/log-box": "^56.0.13", "@expo/metro-runtime": "^56.0.15", "@expo/schema-utils": "^56.0.0", "@expo/ui": "^56.0.18", "@radix-ui/react-slot": "^1.2.0", "@radix-ui/react-tabs": "^1.1.12", "@react-native-masked-view/masked-view": "^0.3.2", "@testing-library/jest-dom": "^6.9.1", "@testing-library/user-event": "^14.6.1", "client-only": "^0.0.1", "color": "^4.2.3", "debug": "^4.3.4", "escape-string-regexp": "^4.0.0", "expo-glass-effect": "^56.0.4", "expo-server": "^56.0.5", "expo-symbols": "^56.0.6", "fast-deep-equal": "^3.1.3", "invariant": "^2.2.4", "nanoid": "^3.3.8", "query-string": "^7.1.3", "react-fast-compare": "^3.2.2", "react-is": "^19.1.0", "react-native-drawer-layout": "^4.2.2", "react-native-screens": "^4.25.2", "server-only": "^0.0.1", "sf-symbols-typescript": "^2.1.0", "shallowequal": "^1.1.0", "standard-navigation": "^0.0.5", "vaul": "^1.1.2" }, "peerDependencies": { "@testing-library/react-native": ">= 13.2.0", "expo": "*", "expo-constants": "^56.0.18", "expo-linking": "^56.0.14", "react": "*", "react-dom": "*", "react-native": "*", "react-native-gesture-handler": "*", "react-native-reanimated": "*", "react-native-safe-area-context": ">= 5.4.0", "react-native-web": "*", "react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4" }, "optionalPeers": ["@testing-library/react-native", "react-dom", "react-native-gesture-handler", "react-native-reanimated", "react-native-web", "react-server-dom-webpack"] }, "sha512-08DBTrKv3QanOc9u1JNxSEChW9c/qNFbQ0dO28OLvufWWfdSRkSdHmh365D2FgoZg1qaOzZPCDuL3tM6nGSfkQ=="], "expo-screen-orientation": ["expo-screen-orientation@56.0.5", "", { "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-Puf4L/cgM8z45Z2fwZzJtlVGSk0ZM/l3gBqXm50bKTACmUk8P8fr7HVbDfs8reyoZuEKKFZJ0VlnKo5i6cSotQ=="], @@ -1000,7 +1002,7 @@ "expo-server": ["expo-server@56.0.5", "", {}, "sha512-SmM2p2g3Jrktpiazcst+OxhjSzOHXKAY4BPURHYHXvApzzoybMmrNF4IEZ8DKZ145BhSe4ydAmlEFCRTsdtgUQ=="], - "expo-sharing": ["expo-sharing@56.0.17", "", { "dependencies": { "@expo/config-plugins": "^56.0.8", "@expo/config-types": "^56.0.5", "@expo/plist": "^0.7.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-FqN7/UBau0PJ2O8OeMYS/fwE+6UMtdoDeGxsRoaileK0w30bXC92MuT7z4ujnk4mF9ZZBjS8axbGOgrZ6JWBEA=="], + "expo-sharing": ["expo-sharing@56.0.18", "", { "dependencies": { "@expo/config-plugins": "^56.0.9", "@expo/config-types": "^56.0.6", "@expo/plist": "^0.7.0" }, "peerDependencies": { "expo": "*", "react": "*", "react-native": "*" } }, "sha512-45w4BWNFmdTczp+fJX6YfwJrn9sX+VeRWz2VWLhauygcCrym44HtVDXX5yVYPB9TW9ZesLcEI+CCrCBNWL7smQ=="], "expo-splash-screen": ["expo-splash-screen@56.0.10", "", { "dependencies": { "@expo/config-plugins": "~56.0.8", "@expo/image-utils": "^0.10.1", "xml2js": "0.6.0" }, "peerDependencies": { "expo": "*" } }, "sha512-vDIlo8hzt9HlCZQ0kSY66v83D1WEXOJbVMeyPDfXDu9tbDdPMNUyDpi4WGJXikAjxnAKfbt5Mv5NnEbxINy+VA=="], @@ -1010,7 +1012,7 @@ "expo-system-ui": ["expo-system-ui@56.0.5", "", { "dependencies": { "@react-native/normalize-colors": "0.85.3", "debug": "^4.3.2" }, "peerDependencies": { "expo": "*", "react-native": "*", "react-native-web": "*" }, "optionalPeers": ["react-native-web"] }, "sha512-n1MmnUArV4cc3gVed9fGtluPme00PE9axKVx+NHbKxHFMam5l4GcOI7PxbYKFNx8o7WA1LRD7eLW33agmZrxGg=="], - "expo-task-manager": ["expo-task-manager@56.0.18", "", { "dependencies": { "unimodules-app-loader": "~56.0.0" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-abTKDhlZ572wSwNuZ9HkDw6rl+kKLq0TkqheIEbGoRkMQVEGV3D5GYYY0gg84TO/HvAqiipdcBFQH8+9uHj70Q=="], + "expo-task-manager": ["expo-task-manager@56.0.19", "", { "dependencies": { "unimodules-app-loader": "~56.0.0" }, "peerDependencies": { "expo": "*", "react-native": "*" } }, "sha512-eDeBR8vXlOAXBck29AzPl+tv4QlJus+cgkQ0TGOBqAlgRPWPWd7ebhqrhb0KRieUZIvzlycfcxjHR/+AiEiMHA=="], "expo-updates-interface": ["expo-updates-interface@56.0.2", "", { "peerDependencies": { "expo": "*" } }, "sha512-eWTwSZ9y8vrULG2oBn2TQSSIwBGSq/TxGJ3jY6tuVS2FWH/ASRIiKs3zkUZTRoC3ZuV2alz0mUClYV7nNrFx8g=="], @@ -1026,7 +1028,7 @@ "fast-xml-builder": ["fast-xml-builder@1.2.0", "", { "dependencies": { "path-expression-matcher": "^1.5.0", "xml-naming": "^0.1.0" } }, "sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q=="], - "fast-xml-parser": ["fast-xml-parser@5.8.0", "", { "dependencies": { "@nodable/entities": "^2.1.0", "fast-xml-builder": "^1.2.0", "path-expression-matcher": "^1.5.0", "strnum": "^2.3.0", "xml-naming": "^0.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-6bIM7fsJxeo3uXv7OncQYsBAMPJ7V16Slahl/6M98C/i2q+vB1+4a0MtrvYwDFEUrwDSbAmeLDRXsOBwrL7yAg=="], + "fast-xml-parser": ["fast-xml-parser@5.9.0", "", { "dependencies": { "@nodable/entities": "^2.2.0", "fast-xml-builder": "^1.2.0", "is-unsafe": "^1.0.1", "path-expression-matcher": "^1.5.0", "strnum": "^2.4.0", "xml-naming": "^0.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-duBuXbyIhEeNO4GjFuVqr0nF047oNwr18aum+zJyqo0MUG/n7Afgs3Qv3D6VN3ONedUKxiuFlPiMGIa0Z11chA=="], "fastq": ["fastq@1.20.1", "", { "dependencies": { "reusify": "^1.0.4" } }, "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw=="], @@ -1056,13 +1058,13 @@ "flow-enums-runtime": ["flow-enums-runtime@0.0.6", "", {}, "sha512-3PYnM29RFXwvAN6Pc/scUfkI7RwhQ/xqyLUyPNlXUp9S40zI8nup9tUSrTLSVnWGBN38FNiGWbwZOB6uR4OGdw=="], - "follow-redirects": ["follow-redirects@1.16.0", "", {}, "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw=="], + "follow-redirects": ["follow-redirects@1.16.0", "", { "peerDependencies": { "debug": "*" }, "optionalPeers": ["debug"] }, "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw=="], "fontfaceobserver": ["fontfaceobserver@2.3.0", "", {}, "sha512-6FPvD/IVyT4ZlNe7Wcn5Fb/4ChigpucKYSvD6a+0iMoLn2inpo711eyIcKjmDtE5XNcgAkSH9uN/nfAeZzHEfg=="], "foreground-child": ["foreground-child@3.3.1", "", { "dependencies": { "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" } }, "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw=="], - "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="], + "form-data": ["form-data@4.0.6", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.4", "mime-types": "^2.1.35" } }, "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ=="], "fresh": ["fresh@0.5.2", "", {}, "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="], @@ -1106,7 +1108,7 @@ "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], - "hasown": ["hasown@2.0.3", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg=="], + "hasown": ["hasown@2.0.4", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A=="], "hermes-compiler": ["hermes-compiler@250829098.0.10", "", {}, "sha512-TcRlZ0/TlyfJqquRFAWoyElVNnkdYRi/sEp4/Qy8/GYxjg8j2cS9D4MjuaQ+qimkmLN7AmO+44IznRf06mAr0w=="], @@ -1130,7 +1132,7 @@ "hyphenate-style-name": ["hyphenate-style-name@1.1.0", "", {}, "sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw=="], - "i18next": ["i18next@26.3.0", "", { "peerDependencies": { "typescript": "^5 || ^6" }, "optionalPeers": ["typescript"] }, "sha512-gHSgGpUXVmuqE2El1W61DmxeyeTlFfZgdJRWMo9jScAn5pu7TuTuiccb1zh3E2J9hEBVGJ23+96x0ieBhfuIHA=="], + "i18next": ["i18next@26.3.1", "", { "peerDependencies": { "typescript": "^5 || ^6" }, "optionalPeers": ["typescript"] }, "sha512-txQqd5EULsqEh9OJqRH15aCaOuy/nLJyhw5EHCSKLKJE1aBbb3Zve2+uQIxgWhPm1QqUQoWyQBm2kfmmIrzkcQ=="], "iconv-lite": ["iconv-lite@0.7.2", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw=="], @@ -1174,6 +1176,8 @@ "is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], + "is-unsafe": ["is-unsafe@1.0.1", "", {}, "sha512-CLK2+VdgERgD96EYm5lUQssZYlRg2tkZnbsxZoacmSiRxiFJ4Nk4SzjCl+Ur+v3kXIY9dTIdb3IH22y1mZ56LA=="], + "is-wsl": ["is-wsl@2.2.0", "", { "dependencies": { "is-docker": "^2.0.0" } }, "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww=="], "isarray": ["isarray@2.0.5", "", {}, "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="], @@ -1202,7 +1206,7 @@ "jiti": ["jiti@1.21.7", "", { "bin": { "jiti": "bin/jiti.js" } }, "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A=="], - "joi": ["joi@17.13.3", "", { "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", "@sideway/address": "^4.1.5", "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA=="], + "joi": ["joi@17.13.4", "", { "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", "@sideway/address": "^4.1.5", "@sideway/formula": "^3.0.1", "@sideway/pinpoint": "^2.0.0" } }, "sha512-1RuuER6kmt8K8I3nIWvPZKi5RQCb568ZPyY4Pwjlua+yo+63ZTmIwxLZH0heBmiKN4uxjvCiarDrjaeH84xicQ=="], "jotai": ["jotai@2.20.0", "", { "peerDependencies": { "@babel/core": ">=7.0.0", "@babel/template": ">=7.0.0", "@types/react": ">=17.0.0", "react": ">=17.0.0" }, "optionalPeers": ["@babel/core", "@babel/template", "@types/react", "react"] }, "sha512-b5GAqgmXmXzB4WPaTH26ppk9Sl7AA9WSQX7yfdM+gJ1rFROiWcVbi97gFuN/yVCojOcbcvop2sfLL+fjxW0JVg=="], @@ -1210,7 +1214,7 @@ "js-tokens": ["js-tokens@4.0.0", "", {}, "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="], - "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + "js-yaml": ["js-yaml@4.2.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw=="], "jsc-safe-url": ["jsc-safe-url@0.2.4", "", {}, "sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q=="], @@ -1232,7 +1236,7 @@ "lan-network": ["lan-network@0.2.1", "", { "bin": { "lan-network": "dist/lan-network-cli.js" } }, "sha512-ONPnazC96VKDntab9j9JKwIWhZ4ZUceB4A9Epu4Ssg0hYFmtHZSeQ+n15nIwTFmcBUKtExOer8WTJ4GF9MO64A=="], - "launch-editor": ["launch-editor@2.13.2", "", { "dependencies": { "picocolors": "^1.1.1", "shell-quote": "^1.8.3" } }, "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg=="], + "launch-editor": ["launch-editor@2.14.1", "", { "dependencies": { "picocolors": "^1.1.1", "shell-quote": "^1.8.4" } }, "sha512-QWBrQsMpH7gPr965dsKD/3cKWiNoTjpATQf++Xq63N6sKRGMwlVXz41O1IZTMfZQgBctD/K5Zt06+/I6pP6+HA=="], "leven": ["leven@3.1.0", "", {}, "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="], @@ -1376,7 +1380,7 @@ "node-int64": ["node-int64@0.4.0", "", {}, "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="], - "node-releases": ["node-releases@2.0.46", "", {}, "sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ=="], + "node-releases": ["node-releases@2.0.47", "", {}, "sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og=="], "node-stream-zip": ["node-stream-zip@1.15.0", "", {}, "sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw=="], @@ -1476,7 +1480,7 @@ "postcss-nested": ["postcss-nested@5.0.6", "", { "dependencies": { "postcss-selector-parser": "^6.0.6" }, "peerDependencies": { "postcss": "^8.2.14" } }, "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA=="], - "postcss-selector-parser": ["postcss-selector-parser@6.1.2", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg=="], + "postcss-selector-parser": ["postcss-selector-parser@6.1.4", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ=="], "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="], @@ -1524,7 +1528,7 @@ "react-i18next": ["react-i18next@17.0.8", "", { "dependencies": { "@babel/runtime": "^7.29.2", "html-parse-stringify": "^3.0.1", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "i18next": ">= 26.2.0", "react": ">= 16.8.0", "react-dom": "*", "react-native": "*", "typescript": "^5 || ^6" }, "optionalPeers": ["react-dom", "react-native", "typescript"] }, "sha512-0ooKbGLU8JXhe1zwpQUWIeXSgLPOfwJmgheWRIUpcoA0CpyabpGhayjdG+/eA5esC1AQ8h2jWpXjJfzQzeDOCw=="], - "react-is": ["react-is@19.2.6", "", {}, "sha512-XjBR15BhXuylgWGuslhDKqlSayuqvqBX91BP8pauG8kd1zY8kotkNWbXksTCNRarse4kuGbe2kIY05ARtwNIvw=="], + "react-is": ["react-is@19.2.7", "", {}, "sha512-kZFnouyVv7eP/Phmrlo9FK+zcAdriZJvzxXHF1Sl1P377WSGe2G/JxVolhTrB/jeV47lKImhNUsijjHAAbcl/A=="], "react-native": ["react-native-tvos@0.85.3-0", "", { "dependencies": { "@react-native-tvos/virtualized-lists": "0.85.3-0", "@react-native/assets-registry": "0.85.3", "@react-native/codegen": "0.85.3", "@react-native/community-cli-plugin": "0.85.3", "@react-native/gradle-plugin": "0.85.3", "@react-native/js-polyfills": "0.85.3", "@react-native/normalize-colors": "0.85.3", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", "babel-plugin-syntax-hermes-parser": "0.33.3", "base64-js": "^1.5.1", "commander": "^12.0.0", "flow-enums-runtime": "^0.0.6", "hermes-compiler": "250829098.0.10", "invariant": "^2.2.4", "memoize-one": "^5.0.0", "metro-runtime": "^0.84.3", "metro-source-map": "^0.84.3", "nullthrows": "^1.1.1", "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-devtools-core": "^6.1.5", "react-refresh": "^0.14.0", "regenerator-runtime": "^0.13.2", "scheduler": "0.27.0", "semver": "^7.1.3", "stacktrace-parser": "^0.1.10", "tinyglobby": "^0.2.15", "whatwg-fetch": "^3.0.0", "ws": "^7.5.10", "yargs": "^17.6.2" }, "peerDependencies": { "@react-native/jest-preset": "0.85.3", "@types/react": "^19.1.1", "react": "^19.2.3" }, "optionalPeers": ["@react-native/jest-preset", "@types/react"], "bin": { "react-native": "cli.js" } }, "sha512-Q9gUndppXbGEiYlQ8eudkdH7rDXdY+KM74Btd5xqMvXHgo7ZXdwI1hKvStmI47KmTaDn0NOmcRl2yBwHfc5+5A=="], @@ -1542,7 +1546,7 @@ "react-native-draggable-flatlist": ["react-native-draggable-flatlist@4.0.3", "", { "dependencies": { "@babel/preset-typescript": "^7.17.12" }, "peerDependencies": { "react-native": ">=0.64.0", "react-native-gesture-handler": ">=2.0.0", "react-native-reanimated": ">=2.8.0" } }, "sha512-2F4x5BFieWdGq9SetD2nSAR7s7oQCSgNllYgERRXXtNfSOuAGAVbDb/3H3lP0y5f7rEyNwabKorZAD/SyyNbDw=="], - "react-native-drawer-layout": ["react-native-drawer-layout@4.2.4", "", { "dependencies": { "color": "^4.2.3", "use-latest-callback": "^0.2.4" }, "peerDependencies": { "react": ">= 18.2.0", "react-native": "*", "react-native-gesture-handler": ">= 2.0.0", "react-native-reanimated": ">= 2.0.0" } }, "sha512-l1Le5HcVidobnJm8xqFZo46Rs8FDHdxbTZhkjxpNSRgU+QMoQXilOfzTHAeNjEGiKVGgIs9cW3ctXeHqgp5jJg=="], + "react-native-drawer-layout": ["react-native-drawer-layout@4.2.5", "", { "dependencies": { "color": "^4.2.3", "use-latest-callback": "^0.2.4" }, "peerDependencies": { "react": ">= 18.2.0", "react-native": "*", "react-native-gesture-handler": ">= 2.0.0", "react-native-reanimated": ">= 2.0.0" } }, "sha512-Yl82uLkXjXuq7222hWGIDsq5A6R/bsCeCEgdIxQUxAEHf00oRdDnRByLx3Fsij3qwtmYNPGrHV1NH8G8hbCbLQ=="], "react-native-edge-to-edge": ["react-native-edge-to-edge@1.8.1", "", { "peerDependencies": { "react": "*", "react-native": "*" } }, "sha512-bhvsKqeX9PGkY9wBUk9vni/tJNJdKtLPbs/j3e/3CdV4JmUWfTXYYoL+4Hc8Wmej+5eJxkc8KOFa454ruFWBCA=="], @@ -1580,7 +1584,7 @@ "react-native-tab-view": ["react-native-tab-view@4.3.0", "", { "dependencies": { "use-latest-callback": "^0.2.4" }, "peerDependencies": { "react": ">= 18.2.0", "react-native": "*", "react-native-pager-view": ">= 6.0.0" } }, "sha512-qPMF75uz/7+MuVG2g+YETdGMzlWZnhC6iI4h/7EBbwIBwNBIBi2z4OA6KhY3IOOBwGHXEIz5IyA6doDqifYBHg=="], - "react-native-text-ticker": ["react-native-text-ticker@1.15.0", "", {}, "sha512-d/uK+PIOhsYMy1r8h825iq/nADiHsabz3WMbRJSnkpQYn+K9aykUAXRRhu8ZbTAzk4CgnUWajJEFxS5ZDygsdg=="], + "react-native-text-ticker": ["react-native-text-ticker@1.16.0", "", {}, "sha512-UHZcIrXzNQ3CnGSA6d5foR9weqSCEk5w+eJGnUf5OQkKbuq/xtt1ZaNVnsgcG5+3f9EnRrNCt52/a46LXVKGGw=="], "react-native-track-player": ["react-native-track-player@github:lovegaoshi/react-native-track-player#33a3ecd", { "peerDependencies": { "react": "*", "react-native": "*", "react-native-windows": "*", "shaka-player": "^4.7.9" }, "optionalPeers": ["react-native-windows", "shaka-player"] }, "lovegaoshi-react-native-track-player-33a3ecd", "sha512-vfkld2jUj7EPkAjIc/Vbx4Q4MtOOLmYtCYCE2dWJsyLnPqgj1f0xVzBxbeVP7dfT+eSh4KIXfdxESXaHgrXIlw=="], @@ -1626,7 +1630,7 @@ "regjsgen": ["regjsgen@0.8.0", "", {}, "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q=="], - "regjsparser": ["regjsparser@0.13.1", "", { "dependencies": { "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw=="], + "regjsparser": ["regjsparser@0.13.2", "", { "dependencies": { "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ=="], "require-directory": ["require-directory@2.1.1", "", {}, "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="], @@ -1684,7 +1688,7 @@ "shell-quote": ["shell-quote@1.8.4", "", {}, "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ=="], - "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], + "side-channel": ["side-channel@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.4", "side-channel-list": "^1.0.1", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ=="], "side-channel-list": ["side-channel-list@1.0.1", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.4" } }, "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w=="], @@ -1722,7 +1726,7 @@ "stacktrace-parser": ["stacktrace-parser@0.1.11", "", { "dependencies": { "type-fest": "^0.7.1" } }, "sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg=="], - "standard-navigation": ["standard-navigation@0.0.5", "", {}, "sha512-YAmzwAiiQVocZxO/VGPFiQHcu5pKiz09QIGC0MK6aRMoa3E0QkoTQgcqJr7ZZ3OMiNhu4DkaGElFI5htjOIDbw=="], + "standard-navigation": ["standard-navigation@0.0.7", "", {}, "sha512-NCGLCNyuXrFOkGHxdNZFnpsehGtiq1oXbPhKl7ZuxFO5J//H2evqqOchmD4YwEUJnkjO4kH9Xp4hQX6hdAYCKQ=="], "statuses": ["statuses@2.0.2", "", {}, "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw=="], @@ -1744,7 +1748,7 @@ "strip-indent": ["strip-indent@3.0.0", "", { "dependencies": { "min-indent": "^1.0.0" } }, "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ=="], - "strnum": ["strnum@2.3.0", "", {}, "sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q=="], + "strnum": ["strnum@2.4.0", "", { "dependencies": { "anynum": "^1.0.0" } }, "sha512-sHrVyWWdq28RbhjuJdZsA1SnGRJV6NiXbk6AXBxDOsgAcA+lmpUZCYjOdLBxkXMwis6RRe7dlZt4VlIWFVzkmg=="], "strtok3": ["strtok3@6.3.0", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "peek-readable": "^4.1.0" } }, "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw=="], @@ -1780,9 +1784,9 @@ "tinycolor2": ["tinycolor2@1.6.0", "", {}, "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="], - "tinyexec": ["tinyexec@1.2.2", "", {}, "sha512-M/Q0B2cp4K7kynaT/vnED1j8TlLY+Pp7C6Wl2bl/7u/F0mUVwdyOpwomQb8JpYLitHUssAJRmLZdMCGsrx7i+g=="], + "tinyexec": ["tinyexec@1.2.4", "", {}, "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg=="], - "tinyglobby": ["tinyglobby@0.2.16", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg=="], + "tinyglobby": ["tinyglobby@0.2.17", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.4" } }, "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g=="], "tmp": ["tmp@0.2.7", "", {}, "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw=="], @@ -1904,7 +1908,7 @@ "zod": ["zod@4.4.3", "", {}, "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ=="], - "zxing-wasm": ["zxing-wasm@3.0.3", "", { "dependencies": { "@types/emscripten": "^1.41.5", "type-fest": "^5.6.0" } }, "sha512-DdOn/G5F+qvZELWeO5ZFFwcN611TfMybxPV0LUUoutUmiH2t47MZSB7gLV9O9YLhvudBdnzQNAoFOu4Xz8eOrQ=="], + "zxing-wasm": ["zxing-wasm@3.1.0", "", { "dependencies": { "@types/emscripten": "^1.41.5", "type-fest": "^5.7.0" } }, "sha512-5+3V1wPRx4gvbeLH2jB7n2cKrYJ1q4i3QgjnBUtrDPeqxJSi6BdzKJg4y6aF6bgW8zfntnYJyrkqFMevDhL2NA=="], "@babel/helper-module-transforms/@babel/helper-module-imports": ["@babel/helper-module-imports@7.29.7", "", { "dependencies": { "@babel/traverse": "^7.29.7", "@babel/types": "^7.29.7" } }, "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g=="], @@ -1920,7 +1924,7 @@ "@expo/cli/ora": ["ora@3.4.0", "", { "dependencies": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-spinners": "^2.0.0", "log-symbols": "^2.2.0", "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" } }, "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg=="], - "@expo/cli/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "@expo/cli/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "@expo/cli/wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], @@ -1932,13 +1936,13 @@ "@expo/config/glob": ["glob@13.0.6", "", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], - "@expo/config/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "@expo/config/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "@expo/config-plugins/getenv": ["getenv@2.0.0", "", {}, "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ=="], "@expo/config-plugins/glob": ["glob@13.0.6", "", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], - "@expo/config-plugins/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "@expo/config-plugins/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "@expo/devcert/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], @@ -1948,11 +1952,11 @@ "@expo/fingerprint/glob": ["glob@13.0.6", "", { "dependencies": { "minimatch": "^10.2.2", "minipass": "^7.1.3", "path-scurry": "^2.0.2" } }, "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw=="], - "@expo/fingerprint/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "@expo/fingerprint/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "@expo/image-utils/getenv": ["getenv@2.0.0", "", {}, "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ=="], - "@expo/image-utils/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "@expo/image-utils/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "@expo/metro-config/getenv": ["getenv@2.0.0", "", {}, "sha512-VilgtJj/ALgGY77fiLam5iD336eSWi96Q15JSAG1zi8NRBysm3LXKdGnHb4m5cuyxvOLQQKWpBZAT6ni4FI2iQ=="], @@ -1960,44 +1964,38 @@ "@expo/package-manager/ora": ["ora@3.4.0", "", { "dependencies": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-spinners": "^2.0.0", "log-symbols": "^2.2.0", "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" } }, "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg=="], - "@expo/prebuild-config/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], - - "@expo/require-utils/@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="], + "@expo/prebuild-config/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "@expo/ws-tunnel/ws": ["ws@8.21.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g=="], - "@jest/types/@types/node": ["@types/node@25.9.1", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg=="], - "@jimp/png/pngjs": ["pngjs@6.0.0", "", {}, "sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg=="], - "@radix-ui/react-collection/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], + "@react-native-community/cli/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], - "@radix-ui/react-dialog/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], - - "@radix-ui/react-primitive/@radix-ui/react-slot": ["@radix-ui/react-slot@1.2.3", "", { "dependencies": { "@radix-ui/react-compose-refs": "1.1.2" }, "peerDependencies": { "@types/react": "*", "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" }, "optionalPeers": ["@types/react"] }, "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A=="], - - "@react-native-community/cli/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], - - "@react-native-community/cli-doctor/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "@react-native-community/cli-doctor/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "@react-native-community/cli-server-api/open": ["open@6.4.0", "", { "dependencies": { "is-wsl": "^1.1.0" } }, "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg=="], "@react-native-community/cli-server-api/ws": ["ws@6.2.4", "", { "dependencies": { "async-limiter": "~1.0.0" } }, "sha512-PNIUUyLI5YpkJZj60YBzX1o0ByQ4ovvfmq9N/Kig/PAYbVlGyz4R6G0SEWrD0O9acc0sT2+IdMBVLFv8FSi0Nw=="], - "@react-native-community/cli-tools/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "@react-native-community/cli-tools/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], - "@react-native/babel-preset/@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="], + "@react-native/babel-preset/@react-native/babel-plugin-codegen": ["@react-native/babel-plugin-codegen@0.86.0", "", { "dependencies": { "@babel/traverse": "^7.29.0", "@react-native/codegen": "0.86.0" } }, "sha512-qdsABWNW7uTll90l4Vh03gjeyu3WVDi2CyiiyvYGMRDcoYbjbQi6df3BMAm9lQI2yslZ1T14LlDDAsgTwNxplA=="], - "@react-native/codegen/@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="], + "@react-native/babel-preset/babel-plugin-syntax-hermes-parser": ["babel-plugin-syntax-hermes-parser@0.36.0", "", { "dependencies": { "hermes-parser": "0.36.0" } }, "sha512-LhD0xdoedDw7ansQgXbB2DADLZIK/LRXuWNBPuVzMc5S2WK5GyT89tCM+cQzxFGO0mGyLK6D5TrVOJJzAoDy8Q=="], - "@react-native/community-cli-plugin/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "@react-native/community-cli-plugin/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], - "@react-native/metro-babel-transformer/@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="], + "@react-native/metro-babel-transformer/hermes-parser": ["hermes-parser@0.36.0", "", { "dependencies": { "hermes-estree": "0.36.0" } }, "sha512-GdpwMmH5x6IpC1cijvcvYnlPB60Mh6kTSF/NFdYV/j56gYdi+0RIakYs+eqOV+bbO0SW7mgVVGSsTJxyPQfo3w=="], + + "@react-native/metro-config/@react-native/js-polyfills": ["@react-native/js-polyfills@0.86.0", "", {}, "sha512-zYy/Cjd1VTnZ2iCNaG9bDF9C3l2ntESiPRscjIlI5FKugu6aeTwsDSv1aI8Bc4Kp3vEdoVg+UQhLAhE4svREaQ=="], "@react-navigation/elements/color": ["color@4.2.3", "", { "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="], "@react-navigation/material-top-tabs/color": ["color@4.2.3", "", { "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="], + "@tanstack/react-query/@tanstack/query-core": ["@tanstack/query-core@5.100.14", "", {}, "sha512-5X41dGpxgeaHISCRW2oYwcSycZeULZzAunaudXT9ov1KOTj9xwt0CH6hbwqP1/z74ZWF7rYFnDpyYH07XFcZew=="], + "@testing-library/dom/aria-query": ["aria-query@5.3.0", "", { "dependencies": { "dequal": "^2.0.3" } }, "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A=="], "@testing-library/dom/dom-accessibility-api": ["dom-accessibility-api@0.5.16", "", {}, "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg=="], @@ -2020,14 +2018,12 @@ "chokidar/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], - "chrome-launcher/@types/node": ["@types/node@25.9.1", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg=="], - - "chromium-edge-launcher/@types/node": ["@types/node@25.9.1", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg=="], - "cli-truncate/string-width": ["string-width@8.2.1", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA=="], "cliui/wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + "compressible/mime-db": ["mime-db@1.54.0", "", {}, "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ=="], + "compression/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], "connect/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], @@ -2036,12 +2032,14 @@ "error-ex/is-arrayish": ["is-arrayish@0.2.1", "", {}, "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="], - "expo-build-properties/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "expo-build-properties/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "expo-modules-autolinking/commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="], "expo-router/color": ["color@4.2.3", "", { "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="], + "expo-router/standard-navigation": ["standard-navigation@0.0.5", "", {}, "sha512-YAmzwAiiQVocZxO/VGPFiQHcu5pKiz09QIGC0MK6aRMoa3E0QkoTQgcqJr7ZZ3OMiNhu4DkaGElFI5htjOIDbw=="], + "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="], "fbjs/promise": ["promise@7.3.1", "", { "dependencies": { "asap": "~2.0.3" } }, "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg=="], @@ -2068,12 +2066,8 @@ "jest-message-util/slash": ["slash@3.0.0", "", {}, "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="], - "jest-util/@types/node": ["@types/node@25.9.1", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg=="], - "jest-util/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], - "jest-worker/@types/node": ["@types/node@25.9.1", "", { "dependencies": { "undici-types": ">=7.24.0 <7.24.7" } }, "sha512-xfrlY7UD5rMJk3ZVJP8BNzS28J36YJg+xp+LPXV1TdWxr8uMH5A860QNxYDGQe/ylDSgjxE52Q9VnO7p75tJxg=="], - "jest-worker/supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], "lighthouse-logger/debug": ["debug@2.6.9", "", { "dependencies": { "ms": "2.0.0" } }, "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="], @@ -2088,8 +2082,6 @@ "logkitty/yargs": ["yargs@15.4.1", "", { "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } }, "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A=="], - "metro/@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="], - "metro/accepts": ["accepts@2.0.0", "", { "dependencies": { "mime-types": "^3.0.0", "negotiator": "^1.0.0" } }, "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng=="], "metro/ci-info": ["ci-info@2.0.0", "", {}, "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="], @@ -2098,29 +2090,23 @@ "metro/mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], - "metro-babel-transformer/@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="], - "metro-babel-transformer/hermes-parser": ["hermes-parser@0.35.0", "", { "dependencies": { "hermes-estree": "0.35.0" } }, "sha512-9JLjeHxBx8T4CAsydZR49PNZUaix+WpQJwu9p2010lu+7Kwl6D/7wYFFJxoz+aXkaaClp9Zfg6W6/zVlSJORaA=="], "metro-cache/https-proxy-agent": ["https-proxy-agent@7.0.6", "", { "dependencies": { "agent-base": "^7.1.2", "debug": "4" } }, "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw=="], - "metro-transform-plugins/@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="], - - "metro-transform-worker/@babel/core": ["@babel/core@7.28.6", "", { "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/generator": "^7.28.6", "@babel/helper-compilation-targets": "^7.28.6", "@babel/helper-module-transforms": "^7.28.6", "@babel/helpers": "^7.28.6", "@babel/parser": "^7.28.6", "@babel/template": "^7.28.6", "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw=="], - "micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="], "nativewind/@babel/types": ["@babel/types@7.19.0", "", { "dependencies": { "@babel/helper-string-parser": "^7.18.10", "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" } }, "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA=="], "nativewind/react-is": ["react-is@18.3.1", "", {}, "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg=="], - "npm-package-arg/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "npm-package-arg/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "parse-png/pngjs": ["pngjs@3.4.0", "", {}, "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="], "patch-package/fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], - "patch-package/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "patch-package/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "path-scurry/lru-cache": ["lru-cache@11.5.1", "", {}, "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A=="], @@ -2140,17 +2126,17 @@ "react-native/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], - "react-native/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "react-native/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "react-native-drawer-layout/color": ["color@4.2.3", "", { "dependencies": { "color-convert": "^2.0.1", "color-string": "^1.9.0" } }, "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A=="], - "react-native-reanimated/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "react-native-reanimated/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "react-native-web/@react-native/normalize-colors": ["@react-native/normalize-colors@0.74.89", "", {}, "sha512-qoMMXddVKVhZ8PA1AbUCk83trpd6N+1nF2A6k1i6LsQObyS92fELuk8kU/lQs6M7BsMHwqyLCpQJ1uFgNvIQXg=="], "react-native-web/memoize-one": ["memoize-one@6.0.0", "", {}, "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="], - "react-native-worklets/semver": ["semver@7.8.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg=="], + "react-native-worklets/semver": ["semver@7.8.4", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA=="], "readable-web-to-node-stream/readable-stream": ["readable-stream@4.7.0", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="], @@ -2178,8 +2164,6 @@ "terser/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="], - "type-is/content-type": ["content-type@2.0.0", "", {}, "sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ=="], - "type-is/mime-types": ["mime-types@3.0.2", "", { "dependencies": { "mime-db": "^1.54.0" } }, "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A=="], "whatwg-url/webidl-conversions": ["webidl-conversions@3.0.1", "", {}, "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="], @@ -2192,7 +2176,7 @@ "xml2js/xmlbuilder": ["xmlbuilder@11.0.1", "", {}, "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="], - "zxing-wasm/type-fest": ["type-fest@5.6.0", "", { "dependencies": { "tagged-tag": "^1.0.0" } }, "sha512-8ZiHFm91orbSAe2PSAiSVBVko18pbhbiB3U9GglSzF/zCGkR+rxpHx6sEMCUm4kxY4LjDIUGgCfUMtwfZfjfUA=="], + "zxing-wasm/type-fest": ["type-fest@5.7.0", "", { "dependencies": { "tagged-tag": "^1.0.0" } }, "sha512-1URUxUqfHFM1c+zfSPsa3gnkO7Aq21qyH75SIduNYz4SzY964rn1X2vCMQaHSHhktiw+0kPa2iyb6PUpXqB6Vg=="], "@expo/cli/ora/chalk": ["chalk@2.4.2", "", { "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="], @@ -2212,10 +2196,14 @@ "@expo/package-manager/ora/strip-ansi": ["strip-ansi@5.2.0", "", { "dependencies": { "ansi-regex": "^4.1.0" } }, "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="], - "@jest/types/@types/node/undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], - "@react-native-community/cli-server-api/open/is-wsl": ["is-wsl@1.1.0", "", {}, "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw=="], + "@react-native/babel-preset/@react-native/babel-plugin-codegen/@react-native/codegen": ["@react-native/codegen@0.86.0", "", { "dependencies": { "@babel/core": "^7.25.2", "@babel/parser": "^7.29.0", "hermes-parser": "0.36.0", "invariant": "^2.2.4", "nullthrows": "^1.1.1", "tinyglobby": "^0.2.15", "yargs": "^17.6.2" } }, "sha512-uTs9DBo3+/lUqinsGZK0FKJRBVClrwMXoZToaDxE1Q2SL2e55vs2GwyZfIKzPl5uJnbu4PfFMIp0/mLXLWUMuA=="], + + "@react-native/babel-preset/babel-plugin-syntax-hermes-parser/hermes-parser": ["hermes-parser@0.36.0", "", { "dependencies": { "hermes-estree": "0.36.0" } }, "sha512-GdpwMmH5x6IpC1cijvcvYnlPB60Mh6kTSF/NFdYV/j56gYdi+0RIakYs+eqOV+bbO0SW7mgVVGSsTJxyPQfo3w=="], + + "@react-native/metro-babel-transformer/hermes-parser/hermes-estree": ["hermes-estree@0.36.0", "", {}, "sha512-A1+8zn5oss2CFP7pKsOaxorQG6FNIz1WU1VDqruLPPZl3LVgeE2C5xfFg8Ow6/Ow4mSslLLtYP1J3n38eKyW9w=="], + "@react-navigation/elements/color/color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], "@react-navigation/elements/color/color-string": ["color-string@1.9.1", "", { "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg=="], @@ -2234,10 +2222,6 @@ "chalk/ansi-styles/color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], - "chrome-launcher/@types/node/undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], - - "chromium-edge-launcher/@types/node/undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], - "cli-truncate/string-width/strip-ansi": ["strip-ansi@7.2.0", "", { "dependencies": { "ansi-regex": "^6.2.2" } }, "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w=="], "cliui/wrap-ansi/ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], @@ -2252,10 +2236,6 @@ "finalhandler/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], - "jest-util/@types/node/undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], - - "jest-worker/@types/node/undici-types": ["undici-types@7.24.6", "", {}, "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg=="], - "lighthouse-logger/debug/ms": ["ms@2.0.0", "", {}, "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="], "log-update/cli-cursor/restore-cursor": ["restore-cursor@5.1.0", "", { "dependencies": { "onetime": "^7.0.0", "signal-exit": "^4.1.0" } }, "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA=="], @@ -2336,6 +2316,10 @@ "@expo/package-manager/ora/strip-ansi/ansi-regex": ["ansi-regex@4.1.1", "", {}, "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="], + "@react-native/babel-preset/@react-native/babel-plugin-codegen/@react-native/codegen/hermes-parser": ["hermes-parser@0.36.0", "", { "dependencies": { "hermes-estree": "0.36.0" } }, "sha512-GdpwMmH5x6IpC1cijvcvYnlPB60Mh6kTSF/NFdYV/j56gYdi+0RIakYs+eqOV+bbO0SW7mgVVGSsTJxyPQfo3w=="], + + "@react-native/babel-preset/babel-plugin-syntax-hermes-parser/hermes-parser/hermes-estree": ["hermes-estree@0.36.0", "", {}, "sha512-A1+8zn5oss2CFP7pKsOaxorQG6FNIz1WU1VDqruLPPZl3LVgeE2C5xfFg8Ow6/Ow4mSslLLtYP1J3n38eKyW9w=="], + "@react-navigation/elements/color/color-convert/color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], "@react-navigation/elements/color/color-string/color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], @@ -2392,6 +2376,8 @@ "@expo/package-manager/ora/cli-cursor/restore-cursor/onetime": ["onetime@2.0.1", "", { "dependencies": { "mimic-fn": "^1.0.0" } }, "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ=="], + "@react-native/babel-preset/@react-native/babel-plugin-codegen/@react-native/codegen/hermes-parser/hermes-estree": ["hermes-estree@0.36.0", "", {}, "sha512-A1+8zn5oss2CFP7pKsOaxorQG6FNIz1WU1VDqruLPPZl3LVgeE2C5xfFg8Ow6/Ow4mSslLLtYP1J3n38eKyW9w=="], + "ansi-fragments/slice-ansi/ansi-styles/color-convert/color-name": ["color-name@1.1.3", "", {}, "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="], "cliui/wrap-ansi/ansi-styles/color-convert/color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], From 7703a1c76f3e2e2fc657d6ce5476a3032f7aa6f2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 21:51:59 +0200 Subject: [PATCH 04/10] chore(deps): Update CI dependencies to v2.16.3 (#1735) --- .github/workflows/crowdin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml index d3792502..39883d8c 100644 --- a/.github/workflows/crowdin.yml +++ b/.github/workflows/crowdin.yml @@ -28,7 +28,7 @@ jobs: fetch-depth: 0 - name: 🌐 Sync Translations with Crowdin - uses: crowdin/github-action@8868a33591d21088edfc398968173a3b98d51706 # v2.16.2 + uses: crowdin/github-action@52aa776766211d83d975df51f3b9c53c2f8ba35f # v2.16.3 with: upload_sources: true upload_translations: true From 3e81291843a864154ce7979eb2903c99b748e70b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 23:28:08 +0200 Subject: [PATCH 05/10] chore(deps): Update CI dependencies to v5.3.0 (#1737) --- .github/workflows/build-apps.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-apps.yml b/.github/workflows/build-apps.yml index 38f1dd23..f305fbfc 100644 --- a/.github/workflows/build-apps.yml +++ b/.github/workflows/build-apps.yml @@ -72,7 +72,7 @@ jobs: # ubuntu-26.04 defaults to JDK 25, which breaks the RN/AGP native build # (Kotlin falls back to JVM_23, the foojay toolchain + CMake configure # fail). Pin Temurin 17 for a deterministic Android build. - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 + uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 # v5.3.0 with: distribution: temurin java-version: "17" @@ -168,7 +168,7 @@ jobs: # ubuntu-26.04 defaults to JDK 25, which breaks the RN/AGP native build # (Kotlin falls back to JVM_23, the foojay toolchain + CMake configure # fail). Pin Temurin 17 for a deterministic Android build. - uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 + uses: actions/setup-java@ad2b38190b15e4d6bdf0c97fb4fca8412226d287 # v5.3.0 with: distribution: temurin java-version: "17" From bf3dc4a366e26ffd176b67d77a149c0b3b116e19 Mon Sep 17 00:00:00 2001 From: Gauvain Date: Wed, 17 Jun 2026 09:39:43 +0200 Subject: [PATCH 06/10] ci(artifact-comment): always-on dropdown, build ETA, signed/unsigned fix (#1734) --- .github/actions/refresh-pr-comment/action.yml | 21 +++ .github/workflows/artifact-comment.yml | 132 ++++++++++++------ .github/workflows/build-apps.yml | 21 +++ 3 files changed, 135 insertions(+), 39 deletions(-) create mode 100644 .github/actions/refresh-pr-comment/action.yml diff --git a/.github/actions/refresh-pr-comment/action.yml b/.github/actions/refresh-pr-comment/action.yml new file mode 100644 index 00000000..3149ea42 --- /dev/null +++ b/.github/actions/refresh-pr-comment/action.yml @@ -0,0 +1,21 @@ +name: Refresh PR build comment +description: >- + Nudge artifact-comment.yml (via workflow_dispatch) so the PR build-status + comment reflects live per-platform progress as each build job finishes. + +runs: + using: composite + steps: + # workflow_dispatch fires even when triggered by the GITHUB_TOKEN, and + # artifact-comment's concurrency group collapses simultaneous nudges, so + # this can't spam the comment. Skipped on forks (their read-only token + # cannot dispatch). github.token is used because composite actions cannot + # read the secrets context. + - if: always() && github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository + continue-on-error: true + shell: bash + env: + GH_TOKEN: ${{ github.token }} + HEAD_REF: ${{ github.head_ref }} + REPO: ${{ github.repository }} + run: gh workflow run artifact-comment.yml --ref "$HEAD_REF" -R "$REPO" diff --git a/.github/workflows/artifact-comment.yml b/.github/workflows/artifact-comment.yml index b81eeeaf..80c7119e 100644 --- a/.github/workflows/artifact-comment.yml +++ b/.github/workflows/artifact-comment.yml @@ -144,7 +144,7 @@ jobs: ) .sort((a, b) => new Date(b.created_at) - new Date(a.created_at)); - console.log(`Found ${buildRuns.length} non-cancelled build workflow runs for this commit`); + console.log(`Found ${buildRuns.length} build workflow runs for this commit`); // Log current status of each build for debugging buildRuns.forEach(run => { @@ -184,21 +184,35 @@ jobs: const latestAndroidRun = findBestRun('Android APK Build'); const latestIOSRun = findBestRun('iOS IPA Build'); + // Map our build targets to their job display names. Exact name is + // tried first so a signed target never collides with its + // "(Unsigned)" sibling (whose name contains the signed name). + const jobMappings = { + 'Android Phone': ['🤖 Build Android APK (Phone)'], + 'Android TV': ['🤖 Build Android APK (TV)'], + 'iOS': ['🍎 Build iOS IPA (Phone)'], + 'iOS Unsigned': ['🍎 Build iOS IPA (Phone - Unsigned)'], + 'tvOS': ['🍎 Build tvOS IPA'], + 'tvOS Unsigned': ['🍎 Build tvOS IPA (Unsigned)'] + }; + + // Prefer an exact name match over a substring match so + // '...(Phone)' doesn't swallow '...(Phone - Unsigned)'. + const findJobForTarget = (jobs, jobNames) => + jobs.find(j => jobNames.some(name => j.name === name)) || + jobs.find(j => jobNames.some(name => j.name.includes(name))); + + // Format a millisecond duration as "Xm Ys". + const fmtDuration = (ms) => { + const min = Math.floor(ms / 60000); + const sec = Math.floor((ms % 60000) / 1000); + return `${min}m ${sec}s`; + }; + // For the consolidated workflow, get individual job statuses if (latestAppsRun) { console.log(`Getting individual job statuses for run ${latestAppsRun.id} (status: ${latestAppsRun.status}, conclusion: ${latestAppsRun.conclusion || 'none'})`); - // Map job names to our build targets. Declared outside the try so - // the catch fallback can reuse the same keys. - const jobMappings = { - 'Android Phone': ['🤖 Build Android APK (Phone)', 'build-android-phone'], - 'Android TV': ['🤖 Build Android APK (TV)', 'build-android-tv'], - 'iOS': ['🍎 Build iOS IPA (Phone)', 'build-ios-phone'], - 'iOS Unsigned': ['🍎 Build iOS IPA (Phone - Unsigned)', 'build-ios-phone-unsigned'], - 'tvOS': ['🍎 Build tvOS IPA', 'build-ios-tv'], - 'tvOS Unsigned': ['🍎 Build tvOS IPA (Unsigned)', 'build-ios-tv-unsigned'] - }; - try { // Get all jobs for this workflow run const { data: jobs } = await github.rest.actions.listJobsForWorkflowRun({ @@ -229,10 +243,8 @@ jobs: // Create individual status for each job for (const [platform, jobNames] of Object.entries(jobMappings)) { - const job = jobs.jobs.find(j => - jobNames.some(name => j.name.includes(name) || j.name === name) - ); - + const job = findJobForTarget(jobs.jobs, jobNames); + if (job) { buildStatuses[platform] = { name: job.name, @@ -358,6 +370,43 @@ jobs: console.log(`- Artifact: ${artifact.name} (from run ${artifact.workflow_run.id})`); }); + // Pull per-job durations from the latest successful develop build so + // in-progress / queued targets can show a realistic ETA instead of + // an open-ended spinner. Best-effort: any failure just drops the ETA. + let referenceDurations = {}; + try { + const { data: devRuns } = await github.rest.actions.listWorkflowRuns({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: 'build-apps.yml', + branch: 'develop', + status: 'success', + per_page: 1 + }); + + if (devRuns.workflow_runs.length > 0) { + const refRun = devRuns.workflow_runs[0]; + const { data: refJobs } = await github.rest.actions.listJobsForWorkflowRun({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: refRun.id + }); + + for (const [platform, jobNames] of Object.entries(jobMappings)) { + const job = findJobForTarget(refJobs.jobs, jobNames); + if (job && job.conclusion === 'success' && job.started_at && job.completed_at) { + referenceDurations[platform] = new Date(job.completed_at) - new Date(job.started_at); + } + } + console.log(`Reference durations from develop run ${refRun.id}:`, + Object.fromEntries(Object.entries(referenceDurations).map(([k, v]) => [k, fmtDuration(v)]))); + } else { + console.log('No successful develop build found for ETA reference'); + } + } catch (error) { + console.log('Failed to fetch develop reference durations:', error.message); + } + // Build comment body with progressive status for individual builds let commentBody = `## 🔧 Build Status for PR #${pr.number}\n\n`; commentBody += `🔗 **Commit**: [\`${targetCommitSha.substring(0, 7)}\`](https://github.com/${context.repo.owner}/${context.repo.repo}/commit/${targetCommitSha})\n\n`; // Progressive build status and downloads table @@ -369,9 +418,9 @@ jobs: const buildTargets = [ { name: 'Android Phone', platform: '🤖', device: '📱 Phone', statusKey: 'Android Phone', artifactPattern: /android.*phone/i }, { name: 'Android TV', platform: '🤖', device: '📺 TV', statusKey: 'Android TV', artifactPattern: /android.*tv/i }, - { name: 'iOS', platform: '🍎', device: '📱 Phone', statusKey: 'iOS', artifactPattern: /ios.*phone.*ipa(?!.*unsigned)/i }, + { name: 'iOS', platform: '🍎', device: '📱 Phone', statusKey: 'iOS', artifactPattern: /^(?!.*unsigned).*ios.*phone.*ipa/i }, { name: 'iOS Unsigned', platform: '🍎', device: '📱 Phone Unsigned', statusKey: 'iOS Unsigned', artifactPattern: /ios.*phone.*unsigned/i }, - { name: 'tvOS', platform: '🍎', device: '📺 TV', statusKey: 'tvOS', artifactPattern: /ios.*tv.*ipa(?!.*unsigned)/i }, + { name: 'tvOS', platform: '🍎', device: '📺 TV', statusKey: 'tvOS', artifactPattern: /^(?!.*unsigned).*ios.*tv.*ipa/i }, { name: 'tvOS Unsigned', platform: '🍎', device: '📺 TV Unsigned', statusKey: 'tvOS Unsigned', artifactPattern: /ios.*tv.*unsigned/i } ]; @@ -407,11 +456,9 @@ jobs: let durationInfo = ''; if (matchingStatus.started_at && matchingStatus.completed_at) { const durationMs = new Date(matchingStatus.completed_at) - new Date(matchingStatus.started_at); - const durationMin = Math.floor(durationMs / 60000); - const durationSec = Math.floor((durationMs % 60000) / 1000); - durationInfo = ` - ${durationMin}m ${durationSec}s`; + durationInfo = ` - ${fmtDuration(durationMs)}`; } - + downloadLink = `[📥 Download ${fileType}](${directLink}) ${sizeInfo}${durationInfo}`; } else if (matchingStatus.conclusion === 'failure') { status = `❌ [Failed](${matchingStatus.url})`; @@ -421,10 +468,16 @@ jobs: downloadLink = '*Build cancelled*'; } else if (matchingStatus.status === 'in_progress') { status = `🔄 [Building...](${matchingStatus.url})`; - downloadLink = '*Build in progress...*'; + const ref = referenceDurations[target.statusKey]; + downloadLink = ref + ? `*Building… ~${fmtDuration(ref)} (avg on develop)*` + : '*Build in progress...*'; } else if (matchingStatus.status === 'queued') { status = `⏳ [Queued](${matchingStatus.url})`; - downloadLink = '*Waiting to start...*'; + const ref = referenceDurations[target.statusKey]; + downloadLink = ref + ? `*Waiting to start… ~${fmtDuration(ref)} once running (avg on develop)*` + : '*Waiting to start...*'; } else if (matchingStatus.status === 'completed' && !matchingStatus.conclusion) { // Workflow completed but conclusion not yet available (rare edge case) status = `🔄 [Finishing...](${matchingStatus.url})`; @@ -445,26 +498,27 @@ jobs: commentBody += `\n`; - // Show installation instructions if we have any artifacts + // Static rundown of the build optimisations + what each artifact + // installs on. Always shown (even mid-build) so testers know what + // to expect before downloads are ready. + commentBody += `
\n`; + commentBody += `📦 Build details & device compatibility\n\n`; + commentBody += `These CI builds are trimmed for size and speed. What that means for installing them:\n\n`; + commentBody += `| Artifact | Architectures | Installs on |\n`; + commentBody += `|---|---|---|\n`; + commentBody += `| 🤖 Android Phone APK | \`arm64-v8a\` | Every 64-bit Android phone (all since ~2017). **Not** an x86_64 emulator or a 32-bit device. |\n`; + commentBody += `| 📺 Android TV APK | \`arm64-v8a\` + \`armeabi-v7a\` | Modern boxes **and** older / cheap 32-bit Android TV sticks. No x86_64. |\n`; + commentBody += `| 🍎 iOS / tvOS IPA | \`arm64\` | iPhone / Apple TV (all current devices). |\n\n`; + commentBody += `**Why no x86_64?** That slice only runs on Android emulators / Chromebooks, never a real phone or TV box — dropping it shrinks the APK and speeds up the build. Local \`bun run android\` is unaffected (it still builds x86_64 from \`app.json\`).\n\n`; + commentBody += `**Runners:** Android on \`ubuntu-26.04\`; iOS / tvOS on Apple Silicon (\`macos-26\`). The size/speed win comes from the ABI trim above, not the runner.\n`; + commentBody += `
\n\n`; + + // Installation instructions only matter once something is downloadable. if (allArtifacts.length > 0) { commentBody += `### 🔧 Installation Instructions\n\n`; commentBody += `- **Android APK**: Download and install directly on your device (enable "Install from unknown sources")\n`; commentBody += `- **iOS IPA**: Install using [AltStore](https://altstore.io/), [Sideloadly](https://sideloadly.io/), or Xcode\n\n`; commentBody += `> ⚠️ **Note**: Artifacts expire in 7 days from build date\n\n`; - - // Collapsible rundown of the build optimisations + what each - // artifact actually installs on, so testers grab the right file. - commentBody += `
\n`; - commentBody += `📦 Build details & device compatibility\n\n`; - commentBody += `These CI builds are trimmed for size and speed. What that means for installing them:\n\n`; - commentBody += `| Artifact | Architectures | Installs on |\n`; - commentBody += `|---|---|---|\n`; - commentBody += `| 🤖 Android Phone APK | \`arm64-v8a\` | Every 64-bit Android phone (all since ~2017). **Not** an x86_64 emulator or a 32-bit device. |\n`; - commentBody += `| 📺 Android TV APK | \`arm64-v8a\` + \`armeabi-v7a\` | Modern boxes **and** older / cheap 32-bit Android TV sticks. No x86_64. |\n`; - commentBody += `| 🍎 iOS / tvOS IPA | \`arm64\` | iPhone / Apple TV (all current devices). |\n\n`; - commentBody += `**Why no x86_64?** That slice only runs on Android emulators / Chromebooks, never a real phone or TV box — dropping it shrinks the APK and speeds up the build. Local \`bun run android\` is unaffected (it still builds x86_64 from \`app.json\`).\n\n`; - commentBody += `**Runners:** Android on \`ubuntu-26.04\`; iOS / tvOS on Apple Silicon (\`macos-26\`). The size/speed win comes from the ABI trim above, not the runner.\n`; - commentBody += `
\n\n`; } else { commentBody += `⏳ **Builds are starting up...** This comment will update automatically as each build completes.\n\n`; } diff --git a/.github/workflows/build-apps.yml b/.github/workflows/build-apps.yml index f305fbfc..3a50064c 100644 --- a/.github/workflows/build-apps.yml +++ b/.github/workflows/build-apps.yml @@ -27,6 +27,7 @@ jobs: name: 🤖 Build Android APK (Phone) permissions: contents: read + actions: write # dispatch artifact-comment.yml to refresh the PR comment steps: - name: 🗑️ Free Disk Space @@ -117,12 +118,16 @@ jobs: android/app/build/outputs/apk/release/*.apk retention-days: 7 + - name: 🔄 Refresh PR build comment + uses: ./.github/actions/refresh-pr-comment + build-android-tv: if: (!contains(github.event.head_commit.message, '[skip ci]')) runs-on: ubuntu-26.04 name: 🤖 Build Android APK (TV) permissions: contents: read + actions: write # dispatch artifact-comment.yml to refresh the PR comment steps: - name: 🗑️ Free Disk Space @@ -212,12 +217,16 @@ jobs: android/app/build/outputs/apk/release/*.apk retention-days: 7 + - name: 🔄 Refresh PR build comment + uses: ./.github/actions/refresh-pr-comment + build-ios-phone: if: (!contains(github.event.head_commit.message, '[skip ci]') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'streamyfin/streamyfin')) runs-on: macos-26 name: 🍎 Build iOS IPA (Phone) permissions: contents: read + actions: write # dispatch artifact-comment.yml to refresh the PR comment steps: - name: 📥 Checkout code @@ -280,12 +289,16 @@ jobs: path: build-*.ipa retention-days: 7 + - name: 🔄 Refresh PR build comment + uses: ./.github/actions/refresh-pr-comment + build-ios-phone-unsigned: if: (!contains(github.event.head_commit.message, '[skip ci]')) runs-on: macos-26 name: 🍎 Build iOS IPA (Phone - Unsigned) permissions: contents: read + actions: write # dispatch artifact-comment.yml to refresh the PR comment steps: - name: 📥 Checkout code @@ -339,6 +352,9 @@ jobs: path: build/*.ipa retention-days: 7 + - name: 🔄 Refresh PR build comment + uses: ./.github/actions/refresh-pr-comment + build-ios-tv: # Disabled: EAS has no provisioning profiles / distribution cert for the tvOS # targets (app + StreamyfinTopShelf extension), so non-interactive signed @@ -349,6 +365,7 @@ jobs: name: 🍎 Build tvOS IPA permissions: contents: read + actions: write # dispatch artifact-comment.yml to refresh the PR comment steps: - name: 📥 Checkout code @@ -418,6 +435,7 @@ jobs: name: 🍎 Build tvOS IPA (Unsigned) permissions: contents: read + actions: write # dispatch artifact-comment.yml to refresh the PR comment steps: - name: 📥 Checkout code @@ -470,3 +488,6 @@ jobs: name: streamyfin-ios-tv-unsigned-ipa-${{ env.DATE_TAG }} path: build/*.ipa retention-days: 7 + + - name: 🔄 Refresh PR build comment + uses: ./.github/actions/refresh-pr-comment From c3dceedad0c90ee5ec3bd881218587b149cf11c3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 10:56:35 +0200 Subject: [PATCH 07/10] chore(deps): Update dependency lint-staged to v17.0.7 (#1607) Co-authored-by: Gauvain --- bun.lock | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bun.lock b/bun.lock index 7f6baa66..8ca83cb3 100644 --- a/bun.lock +++ b/bun.lock @@ -111,7 +111,7 @@ "cross-env": "10.1.0", "expo-doctor": "1.19.9", "husky": "9.1.7", - "lint-staged": "17.0.5", + "lint-staged": "17.0.7", "react-test-renderer": "19.2.3", "typescript": "6.0.3", }, @@ -1270,7 +1270,7 @@ "lines-and-columns": ["lines-and-columns@1.2.4", "", {}, "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="], - "lint-staged": ["lint-staged@17.0.5", "", { "dependencies": { "listr2": "^10.2.1", "picomatch": "^4.0.4", "string-argv": "^0.3.2", "tinyexec": "^1.1.2" }, "optionalDependencies": { "yaml": "^2.8.4" }, "bin": { "lint-staged": "bin/lint-staged.js" } }, "sha512-d12yC+/e8RhBjZtaxZn71FyrgU/P5e+uAPifhCLwdosQZP/zamSdKRWDC30ocVIbzDKiFG1McHc/LUgB92GIPw=="], + "lint-staged": ["lint-staged@17.0.7", "", { "dependencies": { "listr2": "^10.2.1", "picomatch": "^4.0.4", "string-argv": "^0.3.2", "tinyexec": "^1.2.4" }, "optionalDependencies": { "yaml": "^2.9.0" }, "bin": { "lint-staged": "bin/lint-staged.js" } }, "sha512-JrSobt+tW3rH8IOMi8tDZd3foorM5yPEkLD/V2NxobgHrFfHWGee4MOLVuZeScgxftEwbHrPHIFA/ZL+nUJeuA=="], "listr2": ["listr2@10.2.1", "", { "dependencies": { "cli-truncate": "^5.2.0", "eventemitter3": "^5.0.4", "log-update": "^6.1.0", "rfdc": "^1.4.1", "wrap-ansi": "^10.0.0" } }, "sha512-7I5knELsJKTUjXG+A6BkKAiGkW1i25fNa/xlUl9hFtk15WbE9jndA89xu5FzQKrY5llajE1hfZZFMILXkDHk/Q=="], diff --git a/package.json b/package.json index 0c4715d3..fbf33a84 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "cross-env": "10.1.0", "expo-doctor": "1.19.9", "husky": "9.1.7", - "lint-staged": "17.0.5", + "lint-staged": "17.0.7", "react-test-renderer": "19.2.3", "typescript": "6.0.3" }, From 5bf07b47987c1e373385d7808268a73405d0439b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:32:38 +0200 Subject: [PATCH 08/10] feat: New Crowdin Translations (#1699) Co-authored-by: Crowdin Bot --- translations/ar.json | 119 ++-------------- translations/ca.json | 119 ++-------------- translations/cs.json | 119 ++-------------- translations/da.json | 119 ++-------------- translations/de.json | 315 +++++++++++++++--------------------------- translations/el.json | 119 ++-------------- translations/es.json | 121 ++-------------- translations/fi.json | 119 ++-------------- translations/fr.json | 119 ++-------------- translations/he.json | 119 ++-------------- translations/hu.json | 119 ++-------------- translations/it.json | 223 +++++++++--------------------- translations/ja.json | 119 ++-------------- translations/ko.json | 119 ++-------------- translations/nl.json | 119 ++-------------- translations/no.json | 121 ++-------------- translations/pl.json | 119 ++-------------- translations/pt.json | 119 ++-------------- translations/ro.json | 119 ++-------------- translations/ru.json | 119 ++-------------- translations/sv.json | 119 ++-------------- translations/th.json | 121 ++-------------- translations/tlh.json | 119 ++-------------- translations/tr.json | 119 ++-------------- translations/uk.json | 119 ++-------------- translations/vi.json | 119 ++-------------- translations/zh.json | 119 ++-------------- 27 files changed, 477 insertions(+), 3042 deletions(-) diff --git a/translations/ar.json b/translations/ar.json index 8fbd5ddb..ce1e00cd 100644 --- a/translations/ar.json +++ b/translations/ar.json @@ -261,43 +261,6 @@ "None": "لا شيء", "OnlyForced": "فقط الإجبارية" }, - "text_color": "لون النص", - "background_color": "لون الخلفية", - "outline_color": "لون إطار الخط", - "outline_thickness": "سمك إطار الخط", - "background_opacity": "شفافية الخلفية", - "outline_opacity": "شفافية إطار الخط", - "bold_text": "خط عريض", - "colors": { - "Black": "أسود", - "Gray": "رمادي", - "Silver": "فضي", - "White": "أبيض", - "Maroon": "أحمر داكن", - "Red": "أحمر", - "Fuchsia": "وردي", - "Yellow": "أصفر", - "Olive": "‫أخضر زيتوني‬‎", - "Green": "أخضر", - "Teal": "أزرق مخضر", - "Lime": "ليموني", - "Purple": "بنفسجي", - "Navy": "كحلي", - "Blue": "أزرق", - "Aqua": "أزرق بحري" - }, - "thickness": { - "None": "لا شيء", - "Thin": "نحيف", - "Normal": "عادي", - "Thick": "سميك" - }, - "subtitle_color": "لون الترجمة", - "subtitle_background_color": "لون الخلفية", - "subtitle_font": "خط الترجمة", - "ksplayer_title": "إعدادات KSPlayer", - "hardware_decode": "فك الترميز بواسطة الجهاز", - "hardware_decode_description": "استخدم تسريع العتاد لفك ترميز الفيديو. قم بتعطيله إذا واجهت مشكلات في التشغيل.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "إعدادات ترجمة VLC", - "hint": "تخصيص مظهر الترجمة لمشغل VLC. تصبح التغييرات سارية المفعول عند التشغيل التالي.", - "text_color": "لون النص", - "background_color": "لون الخلفية", - "background_opacity": "شفافية الخلفية", - "outline_color": "لون إطار الخط", - "outline_opacity": "شفافية إطار الخط", - "outline_thickness": "سمك إطار الخط", - "bold": "خط عريض", - "margin": "الهامش السفلي" - }, - "video_player": { - "title": "مشغل الفيديو", - "video_player": "مشغل الفيديو", - "video_player_description": "اختر مشغل الفيديو الذي سيتم استخدامه على نظام iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "أخرى", "video_orientation": "اتجاه الفيديو", @@ -351,11 +295,6 @@ "UNKNOWN": "غير معروف" }, "safe_area_in_controls": "المنطقة الآمنة لعناصر التحكم", - "video_player": "مشغل الفيديو", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (تجريبي + صورة داخل صورة)" - }, "show_custom_menu_links": "إظهار روابط القائمة المخصصة", "show_large_home_carousel": "إظهار شريط العرض الكبير (تجريبي)", "hide_libraries": "إخفاء المكتبات", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "الحد الأقصى لعدد الحلقات التي يتم تشغيلها تلقائيًا", "disabled": "معطل" }, - "downloads": { - "downloads_title": "التنزيلات" - }, "music": { "title": "الموسيقى", "playback_title": "التشغيل", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "الإضافات", "jellyseerr": { - "jellyseerr_warning": "هذا الربط في مراحله الأولى. توقع حدوث تغييرات.", "server_url": "رابط الخادم", "server_url_hint": "مثال: http(s)://your-host.url\n(أضف المنفذ إذا لزم الأمر)", "server_url_placeholder": "رابط Seerr...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "اقرأ المزيد عن مارلن.", "save_button": "حفظ", "toasts": { - "saved": "تم الحفظ", - "refreshed": "تم تحديث الإعدادات من الخادم" - }, - "refresh_from_server": "تحديث الإعدادات من الخادم" + "saved": "تم الحفظ" + } }, "streamystats": { - "enable_streamystats": "تفعيل Streamystats", "disable_streamystats": "تعطيل Streamystats", "enable_search": "استخدم للبحث", "url": "الرابط", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "أدخل رابط خادم Streamystats الخاص بك. يجب أن يتضمن الرابط البروتوكول http أو https مع رقم المنفذ اختيارياً.", "read_more_about_streamystats": "اقرأ المزيد عن Streamystats.", - "save_button": "حفظ", "save": "حفظ", "features_title": "المميزات", - "home_sections_title": "أقسام الرئيسية", "enable_movie_recommendations": "توصيات الأفلام", "enable_series_recommendations": "توصيات المسلسلات", "enable_promoted_watchlists": "قوائم مشاهدة مختارة", @@ -445,8 +375,7 @@ "refresh_from_server": "تحديث الإعدادات من الخادم" }, "kefinTweaks": { - "watchlist_enabler": "تفعيل الربط مع قائمة المشاهدة الخاصة بنا", - "watchlist_button": "تبديل حالة ربط قائمة المشاهدة" + "watchlist_enabler": "تفعيل الربط مع قائمة المشاهدة الخاصة بنا" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "حذف جميع الملفات التي تم تنزيلها", "music_cache_title": "التخزين المؤقت للموسيقى", "music_cache_description": "تخزين الأغاني تلقائياً أثناء الاستماع لضمان تشغيل أكثر سلاسة ودعم الاستماع بدون اتصال", - "enable_music_cache": "تمكين التخزين المؤقت للموسيقى", "clear_music_cache": "مسح التخزين المؤقت للموسيقى", "music_cache_size": "تم تخزين {{size}} مؤقتاً", "music_cache_cleared": "تم مسح التخزين المؤقت للموسيقى", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "النظام" }, "toasts": { - "error_deleting_files": "خطأ في حذف الملفات", - "background_downloads_enabled": "تم تفعيل التنزيلات في الخلفية", - "background_downloads_disabled": "تم تعطيل التنزيلات في الخلفية" + "error_deleting_files": "خطأ في حذف الملفات" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "التنزيلات", "series": "مسلسلات", "movies": "أفلام", - "queue": "قائمة الانتظار", "other_media": "وسائط أخرى", - "queue_hint": "ستفقد قائمة الانتظار والتنزيلات عند إعادة تشغيل التطبيق", - "no_items_in_queue": "لا توجد عناصر في قائمة الانتظار", "no_downloaded_items": "لا توجد عناصر تم تنزيلها", "delete_all_movies_button": "حذف جميع الأفلام", "delete_all_series_button": "حذف جميع المسلسلات", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "فشل حذف جميع المسلسلات", "deleted_media_successfully": "تم حذف الوسائط الأخرى بنجاح!", "failed_to_delete_media": "فشل حذف الوسائط الأخرى", - "download_deleted": "تم حذف التنزيل", "download_cancelled": "تم إلغاء التنزيل", "could_not_delete_download": "تعذر حذف التنزيل", - "download_paused": "تم إيقاف التنزيل مؤقتًا", - "could_not_pause_download": "تعذر إيقاف التنزيل مؤقتًا", - "download_resumed": "تم استئناف التنزيل", - "could_not_resume_download": "تعذر استئناف التنزيل", "download_completed": "اكتمل التنزيل", "download_failed": "فشل التنزيل", "download_failed_for_item": "فشل تنزيل {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} قيد التنزيل بالفعل", "all_files_deleted": "تم حذف جميع التنزيلات بنجاح", "files_deleted_by_type": "تم حذف {{count}} {{type}}", - "all_files_folders_and_jobs_deleted_successfully": "تم حذف جميع الملفات والمجلدات والمهام بنجاح", - "failed_to_clean_cache_directory": "فشل تنظيف مجلد ذاكرة التخزين المؤقت", "could_not_get_download_url_for_item": "تعذر الحصول على عنوان URL للتنزيل لـ{{itemName}}", - "go_to_downloads": "الذهاب إلى التنزيلات", "file_deleted": "تم حذف {{item}}" } } @@ -583,16 +495,17 @@ "none": "لا شيء", "track": "أغنية", "cancel": "إلغاء", - "stop": "Stop", "delete": "حذف", "ok": "حسناً", "remove": "إزالة", - "next": "التالي", "back": "رجوع", "continue": "متابعة", "verifying": "جارٍ التحقق...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "بحث...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "تعذر إنشاء بث لـChromecast", "message_from_server": "رسالة من الخادم: {{message}}", "next_episode": "الحلقة التالية", - "refresh_tracks": "تحديث المسارات", - "audio_tracks": "مسارات الصوت:", - "playback_state": "حالة التشغيل:", - "index": "الفِهْرِس:", "continue_watching": "متابعة المشاهدة", "go_back": "رجوع", "downloaded_file_title": "تم تنزيل هذا الملف", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "عرض المزيد", "show_less": "عرض أقل", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "التالي", @@ -888,13 +798,9 @@ "playlists": "قوائم التشغيل", "tracks": "الأغاني" }, - "filters": { - "all": "الكل" - }, "recently_added": "أضيف مؤخرًا", "recently_played": "تم تشغيله مؤخرًا", "frequently_played": "الأكثر تشغيلاً", - "explore": "اكتشف", "top_tracks": "أفضل الأغاني", "play": "تشغيل", "shuffle": "ترتيب عشوائي", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/ca.json b/translations/ca.json index 1e51e347..fb9ea6ba 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -261,43 +261,6 @@ "None": "Cap", "OnlyForced": "Només els forçats" }, - "text_color": "Text Color", - "background_color": "Background Color", - "outline_color": "Outline Color", - "outline_thickness": "Outline Thickness", - "background_opacity": "Background Opacity", - "outline_opacity": "Outline Opacity", - "bold_text": "Bold Text", - "colors": { - "Black": "Black", - "Gray": "Gray", - "Silver": "Silver", - "White": "White", - "Maroon": "Maroon", - "Red": "Red", - "Fuchsia": "Fuchsia", - "Yellow": "Yellow", - "Olive": "Olive", - "Green": "Green", - "Teal": "Teal", - "Lime": "Lime", - "Purple": "Purple", - "Navy": "Navy", - "Blue": "Blue", - "Aqua": "Aqua" - }, - "thickness": { - "None": "Cap", - "Thin": "Thin", - "Normal": "Normal", - "Thick": "Thick" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Altres", "video_orientation": "Orientació del vídeo", @@ -351,11 +295,6 @@ "UNKNOWN": "Desconeguda" }, "safe_area_in_controls": "Àrea segura als controls", - "video_player": "Reproductor de vídeo", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimental + PiP)" - }, "show_custom_menu_links": "Mostrar enllaços del menú personalitzats", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "Oculta biblioteques", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Nombre màxim d'episodis de reproducció automàtica", "disabled": "Desactivat" }, - "downloads": { - "downloads_title": "Descàrregues" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Connectors", "jellyseerr": { - "jellyseerr_warning": "Aquesta integració es troba en una versió primerenca. Espereu que les coses canviïn.", "server_url": "URL del servidor", "server_url_hint": "Exemple: http(s)://el-vostre-domini.url\n(afegiu el port si és necessari)", "server_url_placeholder": "URL de Jellyseerr...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Mostra més sobre Marlin.", "save_button": "Desa", "toasts": { - "saved": "Desat", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Desat" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Suprimeix tots els fitxers descarregats", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Sistema" }, "toasts": { - "error_deleting_files": "Error en suprimir fitxers", - "background_downloads_enabled": "Descàrregues en segon pla activades", - "background_downloads_disabled": "Descàrregues en segon pla desactivades" + "error_deleting_files": "Error en suprimir fitxers" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Descàrregues", "series": "Sèries", "movies": "Pel·lícules", - "queue": "Cua", "other_media": "Other media", - "queue_hint": "La cua i les descàrregues es perdran en reiniciar l'aplicació", - "no_items_in_queue": "No hi ha elements a la cua", "no_downloaded_items": "No hi ha elements descarregats", "delete_all_movies_button": "Suprimeix totes les pel·lícules", "delete_all_series_button": "Suprimeix totes les sèries", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "No s'han pogut suprimir totes les sèries", "deleted_media_successfully": "Deleted other media Successfully!", "failed_to_delete_media": "Failed to Delete other media", - "download_deleted": "Download Deleted", "download_cancelled": "Descàrrega cancel·lada", "could_not_delete_download": "Could Not Delete Download", - "download_paused": "Download Paused", - "could_not_pause_download": "Could Not Pause Download", - "download_resumed": "Download Resumed", - "could_not_resume_download": "Could Not Resume Download", "download_completed": "Descàrrega completada", "download_failed": "Download Failed", "download_failed_for_item": "Ha fallat la descàrrega per a {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "Tots els fitxers, carpetes i treballs s'han suprimit correctament", - "failed_to_clean_cache_directory": "Failed to clean cache directory", "could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}", - "go_to_downloads": "Ves a les descàrregues", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Cerca...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "No s'ha pogut crear un flux per a Chromecast", "message_from_server": "Missatge del servidor: {{message}}", "next_episode": "Episodi següent", - "refresh_tracks": "Actualitzar pistes", - "audio_tracks": "Pistes d'àudio:", - "playback_state": "Estat de reproducció:", - "index": "Índex:", "continue_watching": "Continuar veient", "go_back": "Enrere", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Mostra més", "show_less": "Mostra menys", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Següent", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/cs.json b/translations/cs.json index d5e6419e..da81ce08 100644 --- a/translations/cs.json +++ b/translations/cs.json @@ -261,43 +261,6 @@ "None": "Nic", "OnlyForced": "Pouze vynucené" }, - "text_color": "Barva textu", - "background_color": "Barva pozadí", - "outline_color": "Barva obrysu", - "outline_thickness": "Obrys tloušťky", - "background_opacity": "Průhlednost pozadí", - "outline_opacity": "Průhlednost obrysu", - "bold_text": "Bold Text", - "colors": { - "Black": "Černý", - "Gray": "Šedá", - "Silver": "Stříbro", - "White": "Bílý", - "Maroon": "Maroon", - "Red": "Červená", - "Fuchsia": "Fuchsia", - "Yellow": "Žlutá", - "Olive": "Olivy", - "Green": "Zelená", - "Teal": "Modrozelený", - "Lime": "Světle zelená", - "Purple": "Fialová", - "Navy": "Námořní loď", - "Blue": "Modrá", - "Aqua": "Aqua" - }, - "thickness": { - "None": "Nic", - "Thin": "Tenké", - "Normal": "Normální", - "Thick": "Tlustá" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Ostatní", "video_orientation": "Orientace videa", @@ -351,11 +295,6 @@ "UNKNOWN": "Neznámý" }, "safe_area_in_controls": "Bezpečná oblast v ovládání", - "video_player": "Video přehrávač", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (experimentální + PiP)" - }, "show_custom_menu_links": "Zobrazit vlastní Menu odkazy", "show_large_home_carousel": "Zobrazit velký přehled (beta)", "hide_libraries": "Skrýt knihovny", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Maximální počet automatických přehrávání epizod", "disabled": "Zakázáno" }, - "downloads": { - "downloads_title": "Stahování" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Pluginy", "jellyseerr": { - "jellyseerr_warning": "Tato integrace je v raných fázích. Očekávejte změnu situace.", "server_url": "URL serveru", "server_url_hint": "Příklad: http(s)://your-host.url\n(přidat port, pokud je vyžadováno)", "server_url_placeholder": "Seerr URL", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Přečtěte si více o Marlinu.", "save_button": "Uložit", "toasts": { - "saved": "Uloženo", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Uloženo" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Odstranit všechny stažené soubory", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Systém" }, "toasts": { - "error_deleting_files": "Chyba při mazání souborů", - "background_downloads_enabled": "Stahování na pozadí povoleno", - "background_downloads_disabled": "Stahování na pozadí zakázáno" + "error_deleting_files": "Chyba při mazání souborů" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Stahování", "series": "Televizní série", "movies": "Filmy", - "queue": "Fronta", "other_media": "Ostatní média", - "queue_hint": "Fronta a stahování budou ztraceny při restartu aplikace", - "no_items_in_queue": "Žádné položky ve frontě", "no_downloaded_items": "Žádné stažené položky", "delete_all_movies_button": "Odstranit všechny filmy", "delete_all_series_button": "Odstranit všechny TV-série", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Nepodařilo se odstranit všechny TV-série", "deleted_media_successfully": "Ostatní média úspěšně smazána!", "failed_to_delete_media": "Nepodařilo se odstranit ostatní média", - "download_deleted": "Stahování smazáno", "download_cancelled": "Download Cancelled", "could_not_delete_download": "Stahování nelze odstranit", - "download_paused": "Stahování pozastaveno", - "could_not_pause_download": "Nelze pozastavit stahování", - "download_resumed": "Stahování obnoveno", - "could_not_resume_download": "Nelze pokračovat v stahování", "download_completed": "Stahování dokončeno", "download_failed": "Download Failed", "download_failed_for_item": "Stahování se nezdařilo pro {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "Všechny soubory, složky a úlohy byly úspěšně odstraněny", - "failed_to_clean_cache_directory": "Nepodařilo se vyčistit adresář mezipaměti", "could_not_get_download_url_for_item": "Nelze získat URL pro stažení {{itemName}}", - "go_to_downloads": "Přejít na stahování", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Hledat...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Nelze vytvořit stream pro Chromecast", "message_from_server": "Zpráva od serveru: {{message}}", "next_episode": "Další epizoda", - "refresh_tracks": "Obnovit skladby", - "audio_tracks": "Zvukové stopy:", - "playback_state": "Stav přehrávání:", - "index": "Index:", "continue_watching": "Pokračovat ve sledování", "go_back": "Zpět", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Zobrazit více", "show_less": "Zobrazit méně", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Další", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/da.json b/translations/da.json index 14172136..95e2f6d6 100644 --- a/translations/da.json +++ b/translations/da.json @@ -261,43 +261,6 @@ "None": "Ingen", "OnlyForced": "Kun tvungne undertekster" }, - "text_color": "Tekst Farve", - "background_color": "Baggrunds Farve", - "outline_color": "Omrids Farve", - "outline_thickness": "Omrids Tykkelse", - "background_opacity": "Baggrunds Gennemsigtighed", - "outline_opacity": "Omrids Gennemsigtighed", - "bold_text": "Bold Text", - "colors": { - "Black": "Sort", - "Gray": "Grå", - "Silver": "Sølv", - "White": "Hvid", - "Maroon": "Maroon", - "Red": "Rød", - "Fuchsia": "Fuchsia", - "Yellow": "Gul", - "Olive": "Oliven", - "Green": "Grøn", - "Teal": "Grønblåt", - "Lime": "Limegrøn", - "Purple": "Lilla", - "Navy": "Flåden", - "Blue": "Blå", - "Aqua": "Aqua" - }, - "thickness": { - "None": "Ingen", - "Thin": "Tynd", - "Normal": "Normal", - "Thick": "Tyk" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Andet", "video_orientation": "Videoorientering", @@ -351,11 +295,6 @@ "UNKNOWN": "Ukendt" }, "safe_area_in_controls": "Sikkert område i kontroller", - "video_player": "Videospiller", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Eksperimentel + PiP)" - }, "show_custom_menu_links": "Vis tilpassede menulinks", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "Skjul biblioteker", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Maks. Auto Afspil Episode Antal", "disabled": "Deaktiveret" }, - "downloads": { - "downloads_title": "Downloads" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Plugins", "jellyseerr": { - "jellyseerr_warning": "Denne integration er i en tidlig fase. Forvent, at tingene ændres.", "server_url": "Server URL", "server_url_hint": "Eksempel: http(s)://din-host.url\n(tilføj port hvis nødvendigt)", "server_url_placeholder": "Jellyseerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Læs mere om Marlin.", "save_button": "Gem", "toasts": { - "saved": "Gemt", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Gemt" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Slet alle downloadede filer", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "System" }, "toasts": { - "error_deleting_files": "Fejl ved sletning af filer", - "background_downloads_enabled": "Baggrundsdownloads aktiveret", - "background_downloads_disabled": "Baggrundsdownloads deaktiveret" + "error_deleting_files": "Fejl ved sletning af filer" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Downloads", "series": "TV-serier", "movies": "Film", - "queue": "Kø", "other_media": "Andre medier", - "queue_hint": "Kø og downloads vil gå tabt ved genstart af appen", - "no_items_in_queue": "Ingen elementer i køen", "no_downloaded_items": "Ingen downloadede elementer", "delete_all_movies_button": "Slet alle film", "delete_all_series_button": "Slet alle TV-serier", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Kunne ikke slette alle TV-serier", "deleted_media_successfully": "Slettede andre medier med succes!", "failed_to_delete_media": "Kunne ikke slette andre medier", - "download_deleted": "Download Slettet", "download_cancelled": "Download afbrudt", "could_not_delete_download": "Kunne Ikke Slette Download", - "download_paused": "Download Pauset", - "could_not_pause_download": "Kunne Ikke Pause Download", - "download_resumed": "Download Genoprettet", - "could_not_resume_download": "Kunne Ikke Genoptage Download", "download_completed": "Download fuldført", "download_failed": "Download Failed", "download_failed_for_item": "Download mislykkedes for {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "Alle filer, mapper og jobs blev slettet med succes", - "failed_to_clean_cache_directory": "Kunne ikke rense cache-mappe", "could_not_get_download_url_for_item": "Kunne ikke hente download URL til {{itemName}}", - "go_to_downloads": "Gå til downloads", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Søg...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Kunne ikke oprette en stream til Chromecast", "message_from_server": "Besked fra server: {{message}}", "next_episode": "Næste episode", - "refresh_tracks": "Opdater spor", - "audio_tracks": "Lydspor:", - "playback_state": "Afspilningstilstand:", - "index": "Indeks:", "continue_watching": "Fortsæt med at se", "go_back": "Gå Tilbage", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Vis mere", "show_less": "Vis mindre", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Næste", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/de.json b/translations/de.json index 2582fb78..6363bb03 100644 --- a/translations/de.json +++ b/translations/de.json @@ -4,8 +4,8 @@ "error_title": "Fehler", "login_title": "Anmelden", "login_to_title": "Anmelden bei", - "select_user": "Select a user to log in", - "add_user_to_login": "Add a user to log in", + "select_user": "Benutzer zum Anmelden auswählen", + "add_user_to_login": "Zum Anmelden einen Benutzer hinzufügen", "add_user": "Add User", "username_placeholder": "Benutzername", "password_placeholder": "Passwort", @@ -47,9 +47,9 @@ "add_account": "Konto hinzufügen", "remove_account_description": "Hiermit werden die gespeicherten Zugangsdaten für {{username}} entfernt.", "remove_server": "Remove Server", - "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "remove_server_description": "Dies wird {{server}} und alle gespeicherten Konten aus Ihrer Liste entfernen.", "select_your_server": "Select Your Server", - "add_server_to_get_started": "Add a server to get started", + "add_server_to_get_started": "Füge einen Server hinzu, um loszulegen", "add_server": "Add Server", "change_server": "Change Server" }, @@ -95,7 +95,7 @@ "oops": "Ups!", "error_message": "Etwas ist schiefgelaufen.\nBitte melde dich ab und wieder an.", "continue_watching": "Weiterschauen", - "continue": "Continue", + "continue": "Weiter", "next_up": "Als nächstes", "continue_and_next_up": "\"Weiterschauen\" und \"Als Nächstes\"", "recently_added_in": "Kürzlich hinzugefügt in {{libraryName}}", @@ -121,9 +121,9 @@ "log_out_button": "Abmelden", "switch_user": { "title": "Switch User", - "account": "Account", + "account": "Benutzerkonto", "switch_user": "Switch User on This Server", - "current": "current" + "current": "aktuell" }, "categories": { "title": "Kategorien" @@ -143,9 +143,9 @@ "show_series_poster_on_episode": "Show Series Poster on Episodes", "theme_music": "Theme Music", "display_size": "Display Size", - "display_size_small": "Small", - "display_size_default": "Default", - "display_size_large": "Large", + "display_size_small": "Klein", + "display_size_default": "Standard", + "display_size_large": "Groß", "display_size_extra_large": "Extra Large" }, "network": { @@ -203,8 +203,8 @@ "title": "Buffer Settings", "cache_mode": "Cache Mode", "cache_auto": "Auto", - "cache_yes": "Enabled", - "cache_no": "Disabled", + "cache_yes": "Aktiviert", + "cache_no": "Deaktiviert", "buffer_duration": "Buffer Duration", "max_cache_size": "Max Cache Size", "max_backward_cache": "Max Backward Cache" @@ -212,7 +212,7 @@ "vo_driver": { "title": "Video Output", "vo_mode": "VO Driver", - "gpu_next": "gpu-next (Recommended)", + "gpu_next": "gpu-next (empfohlen)", "gpu": "gpu" }, "gesture_controls": { @@ -261,79 +261,23 @@ "None": "Keine", "OnlyForced": "Nur erzwungene" }, - "text_color": "Textfarbe", - "background_color": "Hintergrundfarbe", - "outline_color": "Konturfarbe", - "outline_thickness": "Konturdicke", - "background_opacity": "Hintergrundtransparenz", - "outline_opacity": "Konturtransparenz", - "bold_text": "Fettgedruckter Text", - "colors": { - "Black": "Schwarz", - "Gray": "Grau", - "Silver": "Silber", - "White": "Weiß", - "Maroon": "Rotbraun", - "Red": "Rot", - "Fuchsia": "Magenta", - "Yellow": "Gelb", - "Olive": "Olivgrün", - "Green": "Grün", - "Teal": "Türkis", - "Lime": "Hellgrün", - "Purple": "Lila", - "Navy": "Marineblau", - "Blue": "Blau", - "Aqua": "Himmelblau" - }, - "thickness": { - "None": "Keine", - "Thin": "Dünn", - "Normal": "Normal", - "Thick": "Dick" - }, - "subtitle_color": "Untertitelfarbe", - "subtitle_background_color": "Hintergrundfarbe", - "subtitle_font": "Untertitel-Schriftart", - "ksplayer_title": "KSPlayer Einstellungen", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Hardwarebeschleunigung für Video Decoding verwenden. Deaktivieren wenn Wiedergabeprobleme auftreten.", "opensubtitles_title": "OpenSubtitles", - "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", + "opensubtitles_hint": "Geben Sie Ihren OpenSubtitles API-Schlüssel ein, um die Client-seitige Untertitelsuche als Fallback zu aktivieren, wenn Ihr Jellyfin-Server keinen Untertitelanbieter konfiguriert hat.", "opensubtitles_api_key": "API Key", - "opensubtitles_api_key_placeholder": "Enter API key...", - "opensubtitles_get_key": "Get your free API key at opensubtitles.com/en/consumers", + "opensubtitles_api_key_placeholder": "API-Schüssel eingeben ...", + "opensubtitles_get_key": "Holen Sie sich Ihren kostenlosen API-Schlüssel unter opensubtitles.com/de/consumers", "mpv_subtitle_scale": "Subtitle Scale", "mpv_subtitle_margin_y": "Vertical Margin", "mpv_subtitle_align_x": "Horizontal Align", "mpv_subtitle_align_y": "Vertical Align", "align": { - "left": "Left", - "center": "Center", - "right": "Right", - "top": "Top", - "bottom": "Bottom" + "left": "Links", + "center": "Mittig", + "right": "Rechts", + "top": "Oben", + "bottom": "Unten" } }, - "vlc_subtitles": { - "title": "VLC Untertitel-Einstellungen", - "hint": "Anpassen des Untertitel-Erscheinungsbildes für VLC. Änderungen werden bei der nächsten Wiedergabe übernommen.", - "text_color": "Schriftfarbe", - "background_color": "Hintergrundfarbe", - "background_opacity": "Hintergrundtransparenz", - "outline_color": "Konturfarbe", - "outline_opacity": "Konturtransparenz", - "outline_thickness": "Konturdicke", - "bold": "Fettgedruckter Text", - "margin": "Unterer Abstand" - }, - "video_player": { - "title": "Videoplayer", - "video_player": "Videoplayer", - "video_player_description": "Videoplayer auf iOS auswählen.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Sonstiges", "video_orientation": "Videoausrichtung", @@ -351,11 +295,6 @@ "UNKNOWN": "Unbekannt" }, "safe_area_in_controls": "Sicherer Bereich in den Steuerungen", - "video_player": "Videoplayer", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimentell + PiP)" - }, "show_custom_menu_links": "Benutzerdefinierte Menülinks anzeigen", "show_large_home_carousel": "Zeige große Startseiten-Übersicht (Beta)", "hide_libraries": "Bibliotheken ausblenden", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Maximale automatisch abzuspielende Episodenanzahl", "disabled": "Deaktiviert" }, - "downloads": { - "downloads_title": "Downloads" - }, "music": { "title": "Musik", "playback_title": "Wiedergabe", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Plugins", "jellyseerr": { - "jellyseerr_warning": "Diese Integration ist in einer frühen Entwicklungsphase und kann jederzeit geändert werden.", "server_url": "Server URL", "server_url_hint": "Beispiel: http(s)://your-host.url\n(Port hinzufügen, falls erforderlich)", "server_url_placeholder": "Seerr URL", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Erfahre mehr über Marlin.", "save_button": "Speichern", "toasts": { - "saved": "Gespeichert", - "refreshed": "Einstellungen vom Server aktualisiert" - }, - "refresh_from_server": "Einstellungen vom Server aktualisieren" + "saved": "Gespeichert" + } }, "streamystats": { - "enable_streamystats": "Streamystats aktivieren", "disable_streamystats": "Streamystats deaktivieren", "enable_search": "Zum Suchen verwenden", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "URL für den Streamystats-Server eingeben.", "read_more_about_streamystats": "Mehr über Streamystats erfahren.", - "save_button": "Speichern", "save": "Gespeichert", "features_title": "Features", - "home_sections_title": "Startseitenbereiche", "enable_movie_recommendations": "Filmempfehlungen", "enable_series_recommendations": "Serienempfehlungen", "enable_promoted_watchlists": "Empfohlene Merklisten", @@ -445,8 +375,7 @@ "refresh_from_server": "Einstellungen vom Server aktualisieren" }, "kefinTweaks": { - "watchlist_enabler": "Merklisten-Integration aktivieren", - "watchlist_button": "Merklisten-Integration umschalten" + "watchlist_enabler": "Merklisten-Integration aktivieren" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Alle heruntergeladenen Dateien löschen", "music_cache_title": "Musik-Cache", "music_cache_description": "Beim Anhören Titel automatisch in den Cache laden um bessere Wiedergabe und Offline-Wiedergabe zu ermöglichen", - "enable_music_cache": "Musik-Cache aktivieren", "clear_music_cache": "Musik-Cache leeren", "music_cache_size": "{{size}} gechached", "music_cache_cleared": "Musik-Cache geleert", @@ -466,10 +394,8 @@ "downloaded_songs_deleted": "Heruntergeladene Titel gelöscht", "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", - "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", - "clear_all_cache_error_desc": "An error occurred while clearing the cache." + "clear_all_cache_confirm_desc": "Sind Sie sicher, dass Sie alle zwischengespeicherten Daten löschen möchten? Dadurch werden alle zwischengespeicherten Bilder, Musikdateien, Untertitel und Abfrage-Caches gelöscht. Ihre Einstellungen und Login-Sitzung werden beibehalten.", + "clear_all_cache_error_desc": "Beim Löschen des Caches ist ein Fehler aufgetreten." }, "intro": { "title": "Einführung", @@ -490,23 +416,20 @@ "system": "System" }, "toasts": { - "error_deleting_files": "Fehler beim Löschen von Dateien", - "background_downloads_enabled": "Hintergrunddownloads aktiviert", - "background_downloads_disabled": "Hintergrunddownloads deaktiviert" + "error_deleting_files": "Fehler beim Löschen von Dateien" }, "security": { - "title": "Security", + "title": "Sicherheit", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", - "disabled": "Disabled", - "1_minute": "1 minute", - "5_minutes": "5 minutes", - "15_minutes": "15 minutes", - "30_minutes": "30 minutes", - "1_hour": "1 hour", - "4_hours": "4 hours", - "24_hours": "24 hours" + "disabled": "Deaktiviert", + "1_minute": "1 Minute", + "5_minutes": "5 Minuten", + "15_minutes": "15 Minuten", + "30_minutes": "30 Minuten", + "1_hour": "1 Stunde", + "4_hours": "4 Stunden", + "24_hours": "24 Stunden" } } }, @@ -518,10 +441,7 @@ "downloads_title": "Downloads", "series": "Serien", "movies": "Filme", - "queue": "Warteschlange", "other_media": "Andere Medien", - "queue_hint": "Warteschlange und aktive Downloads gehen verloren wenn die App neu gestartet wird", - "no_items_in_queue": "Keine Elemente in der Warteschlange", "no_downloaded_items": "Keine heruntergeladenen Elemente", "delete_all_movies_button": "Alle Filme löschen", "delete_all_series_button": "Alle Serien löschen", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Fehler beim Löschen aller Serien", "deleted_media_successfully": "Andere Medien erfolgreich gelöscht!", "failed_to_delete_media": "Fehler beim Löschen anderer Medien", - "download_deleted": "Download gelöscht", "download_cancelled": "Download abgebrochen", "could_not_delete_download": "Download konnte nicht gelöscht werden", - "download_paused": "Download pausiert", - "could_not_pause_download": "Download konnte nicht angehalten werden", - "download_resumed": "Download fortgesetzt", - "could_not_resume_download": "Download konnte nicht fortgesetzt werden", "download_completed": "Download abgeschlossen", "download_failed": "Download fehlgeschlagen", "download_failed_for_item": "Download für {{item}} fehlgeschlagen - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} Lädt", "all_files_deleted": "Alle Downloads gelöscht", "files_deleted_by_type": "{{count}} {{type}} gelöscht", - "all_files_folders_and_jobs_deleted_successfully": "Alle Dateien, Ordner und Jobs erfolgreich gelöscht", - "failed_to_clean_cache_directory": "Fehler beim Bereinigen des Cache-Verzeichnisses", "could_not_get_download_url_for_item": "Download-URL für {{itemName}} konnte nicht geladen werden", - "go_to_downloads": "Zu Downloads gehen", "file_deleted": "{{item}} gelöscht" } } @@ -583,16 +495,17 @@ "none": "Keine", "track": "Spur", "cancel": "Abbrechen", - "stop": "Stop", "delete": "Löschen", "ok": "OK", "remove": "Entfernen", - "next": "Weiter", "back": "Zurück", "continue": "Fortsetzen", "verifying": "Verifiziere...", - "login": "Login", - "refresh": "Refresh" + "login": "Anmelden", + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Suchen...", @@ -641,7 +554,7 @@ "movies": "Filme", "series": "Serien", "boxsets": "Boxsets", - "playlists": "Playlists", + "playlists": "Wiedergabelisten", "items": "Elemente" }, "options": { @@ -653,7 +566,7 @@ "cover": "Cover", "show_titles": "Titel anzeigen", "show_stats": "Statistiken anzeigen", - "options_title": "Options" + "options_title": "Optionen" }, "filters": { "genres": "Genres", @@ -662,10 +575,10 @@ "filter_by": "Filtern nach", "sort_order": "Sortierreihenfolge", "tags": "Tags", - "all": "All", - "reset": "Reset", - "asc": "Ascending", - "desc": "Descending" + "all": "Alle", + "reset": "Zurücksetzen", + "asc": "Aufsteigend", + "desc": "Absteigend" } }, "favorites": { @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Konnte keinen Stream für Chromecast erstellen", "message_from_server": "Nachricht vom Server: {{message}}", "next_episode": "Nächste Episode", - "refresh_tracks": "Spuren aktualisieren", - "audio_tracks": "Audiospuren:", - "playback_state": "Wiedergabestatus:", - "index": "Index:", "continue_watching": "Fortsetzen", "go_back": "Zurück", "downloaded_file_title": "Diese Datei wurde bereits heruntergeladen", @@ -702,34 +611,35 @@ "downloaded_file_yes": "Ja", "downloaded_file_no": "Nein", "downloaded_file_cancel": "Abbrechen", - "swipe_down_settings": "Swipe down for settings", + "swipe_down_settings": "Für Einstellungen nach unten wischen", "ends_at": "Endet um {{time}}", "search_subtitles": "Search Subtitles", - "subtitle_tracks": "Tracks", + "subtitle_tracks": "Titel", "subtitle_search": "Search & Download", - "download": "Download", - "subtitle_download_hint": "Downloaded subtitles will be saved to your library", + "download": "Herunterladen", + "subtitle_download_hint": "Heruntergeladene Untertitel werden in Ihrer Bibliothek gespeichert", "using_jellyfin_server": "Using Jellyfin Server", - "language": "Language", - "results": "Results", - "searching": "Searching...", - "search_failed": "Search failed", - "no_subtitle_provider": "No subtitle provider configured on server", - "no_subtitles_found": "No subtitles found", - "add_opensubtitles_key_hint": "Add OpenSubtitles API key in settings for client-side fallback", - "settings": "Settings", + "language": "Sprache", + "results": "Ergebnisse", + "searching": "Suche ...", + "search_failed": "Suche fehlgeschlagen", + "no_subtitle_provider": "Kein Untertitelanbieter auf dem Server konfiguriert", + "no_subtitles_found": "Keine Untertitel gefunden", + "add_opensubtitles_key_hint": "OpenSubtitles API-Schlüssel in den Einstellungen für Client-seitigen Fallback hinzufügen", + "settings": "Einstellungen", "skip_intro": "Skip Intro", "skip_credits": "Skip Credits", "stopPlayback": "Stop Playback", - "stopPlayingTitle": "Stop playing \"{{title}}\"?", - "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "stopPlayingTitle": "Wiedergabe von \"{{title}}\" beenden?", + "stopPlayingConfirm": "Bist du sicher, dass du die Wiedergabe beenden möchtest?", + "downloaded": "Heruntergeladen", + "missing_parameters": "Missing playback parameters" }, "chapters": { - "title": "Chapters", - "chapter_number": "Chapter {{number}}", - "open": "Open chapters", - "close": "Close chapters" + "title": "Kapitel", + "chapter_number": "Kapitel {{number}}", + "open": "Kapitel öffnen", + "close": "Kapitel schließen" }, "item_card": { "next_up": "Als Nächstes", @@ -754,20 +664,19 @@ "quality": "Qualität", "audio": "Audio", "subtitles": { - "label": "Subtitle", - "none": "None", - "tracks": "Tracks" + "label": "Untertitel", + "none": "Keine", + "tracks": "Titel" }, "show_more": "Mehr anzeigen", "show_less": "Weniger anzeigen", - "left": "left", - "more_info": "More Info", - "director": "Director", - "cast": "Cast", + "left": "übrig", + "director": "Regisseur*in", + "cast": "Besetzung", "technical_details": "Technical Details", "appeared_in": "Erschien in", - "movies": "Movies", - "shows": "Shows", + "movies": "Filme", + "shows": "Serien", "could_not_load_item": "Konnte Element nicht laden", "none": "Keine", "download": { @@ -782,9 +691,10 @@ "mark_played": "Mark as Watched", "mark_unplayed": "Mark as Unwatched", "resume_playback": "Resume Playback", - "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", + "resume_playback_description": "Möchtest du dort fortfahren, wo du aufgehört hast oder von Anfang anfangen?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Weiter ab {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Nächste", @@ -796,16 +706,16 @@ "sports": "Sport", "for_kids": "Für Kinder", "news": "Nachrichten", - "page_of": "Page {{current}} of {{total}}", - "no_programs": "No programs available", - "no_channels": "No channels available", + "page_of": "Seite {{current}} von {{total}}", + "no_programs": "Keine Programme verfügbar", + "no_channels": "Keine Kanäle verfügbar", "tabs": { - "programs": "Programs", - "guide": "Guide", - "channels": "Channels", - "recordings": "Recordings", - "schedule": "Schedule", - "series": "Series" + "programs": "Programme", + "guide": "Führer", + "channels": "Kanäle", + "recordings": "Aufzeichnungen", + "schedule": "Planung", + "series": "Serien" } }, "jellyseerr": { @@ -851,12 +761,12 @@ "decline": "Ablehnen", "requested_by": "Angefragt von {{user}}", "unknown_user": "Unbekannter Nutzer", - "select": "Select", + "select": "Auswählen", "request_all": "Request All", "request_seasons": "Request Seasons", "select_seasons": "Select Seasons", "request_selected": "Request Selected", - "n_selected": "{{count}} selected", + "n_selected": "{{count}} ausgewählt", "toasts": { "jellyseer_does_not_meet_requirements": "Seerr-Server erfüllt nicht die minimalen Versionsanforderungen. Bitte den Seerr-Server auf mindestens 2.0.0 aktualisieren.", "jellyseerr_test_failed": "Seerr-Test fehlgeschlagen. Bitte erneut versuchen.", @@ -877,7 +787,7 @@ "library": "Bibliothek", "custom_links": "Links", "favorites": "Favoriten", - "settings": "Settings" + "settings": "Einstellungen" }, "music": { "title": "Musik", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "Titel" }, - "filters": { - "all": "Alle" - }, "recently_added": "Kürzlich hinzugefügt", "recently_played": "Vor kurzem gehört", "frequently_played": "Oft gehört", - "explore": "Entdecken", "top_tracks": "Top-Titel", "play": "Abspielen", "shuffle": "Shuffle", @@ -1004,34 +910,33 @@ } }, "companion_login": { - "title": "Pair with TV", - "align_qr": "Align the QR code within the frame", - "enter_code_manually": "Enter code manually", - "pairing_enter_credentials": "Enter credentials for TV", - "pairing_code_label": "Pairing code", + "title": "Mit TV koppeln", + "align_qr": "Den QR-Code innerhalb des Rahmens ausrichten", + "enter_code_manually": "Code manuell eingeben", + "pairing_enter_credentials": "Anmeldedaten für TV eingeben", + "pairing_code_label": "Kopplungscode", "server": "Server", - "authorize_button": "Authorize", - "authorizing": "Authorizing...", + "authorize_button": "Autorisieren", + "authorizing": "Autorisieren...", "scan_again": "Scan Again", - "done": "Done", + "done": "Fertig", "success_title": "Authorization Sent", - "pairing_tv_connecting": "The TV is connecting to your account", + "pairing_tv_connecting": "Der Fernseher verbindet sich mit Ihrem Konto", "error_title": "Authorization Failed", - "error_invalid_qr": "Invalid QR code. Please scan the TV pairing code.", - "error_generic": "Something went wrong. Please try again.", - "error_permission_denied": "Camera permission is required to scan QR codes.", - "login_as": "Log in as {{username}}?", - "on_server": "on {{server}}", - "use_different_user": "Use a different user", - "open_settings": "Open Settings" + "error_invalid_qr": "Ungültiger QR-Code. Bitte scannen Sie den TV-Kopplungscode.", + "error_generic": "Etwas ist schiefgelaufen. Bitte versuche es erneut.", + "error_permission_denied": "Kameraberechtigung erforderlich zum Scannen von QR-Codes.", + "login_as": "Als {{username}} anmelden?", + "on_server": "auf {{server}}", + "use_different_user": "Verwende einen anderen Benutzer", + "open_settings": "Einstellungen öffnen" }, "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", - "waiting_for_phone": "Waiting for phone...", - "scan_with_phone": "Scan with the Streamyfin app on your phone", - "logging_in": "Logging in...", - "logging_in_description": "Connecting to your server" + "waiting_for_phone": "Warte auf Telefon...", + "scan_with_phone": "Scanne mit der Streamyfin-App auf deinem Handy", + "logging_in": "Anmeldung...", + "logging_in_description": "Verbinde mit deinem Server" } } diff --git a/translations/el.json b/translations/el.json index 0a519f48..f8ba3917 100644 --- a/translations/el.json +++ b/translations/el.json @@ -261,43 +261,6 @@ "None": "Κανένα", "OnlyForced": "Μόνο" }, - "text_color": "Χρώμα Κειμένου", - "background_color": "Χρώμα Φόντου", - "outline_color": "Χρώμα Περιγράμματος", - "outline_thickness": "Πάχος Περιγράμματος", - "background_opacity": "Αδιαφάνεια Φόντου", - "outline_opacity": "Αδιαφάνεια Περιγράμματος", - "bold_text": "Bold Text", - "colors": { - "Black": "Μαύρο", - "Gray": "Γκρι", - "Silver": "Ασημένιο", - "White": "Λευκό", - "Maroon": "Μαρώ", - "Red": "Κόκκινο", - "Fuchsia": "Fuchsia", - "Yellow": "Κίτρινο", - "Olive": "Ελιές", - "Green": "Πράσινο", - "Teal": "Τιρκουάζ", - "Lime": "Άσβεστος", - "Purple": "Μωβ", - "Navy": "Ναυτικό", - "Blue": "Μπλε", - "Aqua": "Νερό" - }, - "thickness": { - "None": "Κανένα", - "Thin": "Λεπτό", - "Normal": "Κανονικό", - "Thick": "Παχύ" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Άλλο", "video_orientation": "Προσανατολισμός Βίντεο", @@ -351,11 +295,6 @@ "UNKNOWN": "Άγνωστο" }, "safe_area_in_controls": "Ασφαλής περιοχή σε χειριστήρια", - "video_player": "Αναπαραγωγέας Βίντεο", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Πειραματική + PiP)" - }, "show_custom_menu_links": "Εμφάνιση Προσαρμοσμένων Συνδέσμων Μενού", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "Απόκρυψη Βιβλιοθηκών", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Μέγιστο Πλήθος Επεισόδιο Αυτόματου Παιχνιδιού", "disabled": "Απενεργοποιημένο" }, - "downloads": { - "downloads_title": "Λήψεις" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Πρόσθετα", "jellyseerr": { - "jellyseerr_warning": "Αυτή η ενσωμάτωση βρίσκεται στα αρχικά της στάδια.", "server_url": "Url Διακομιστή", "server_url_hint": "Παράδειγμα: http(s)://your-host.url\n(προσθέστε θύρα εφόσον απαιτείται)", "server_url_placeholder": "Seerr URL", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Διαβάστε Περισσότερα Σχετικά Με Marlin.", "save_button": "Αποθήκευση", "toasts": { - "saved": "Αποθηκεύτηκε", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Αποθηκεύτηκε" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Διαγραφή Όλων Των Ληφθέντων Αρχείων", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Σύστημα" }, "toasts": { - "error_deleting_files": "Σφάλμα Διαγραφής Αρχείων", - "background_downloads_enabled": "Οι λήψεις στο παρασκήνιο ενεργοποιήθηκαν", - "background_downloads_disabled": "Οι λήψεις παρασκηνίου απενεργοποιήθηκαν" + "error_deleting_files": "Σφάλμα Διαγραφής Αρχείων" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Λήψεις", "series": "Τηλεόραση-Σειρά", "movies": "Ταινίες", - "queue": "Ουρά", "other_media": "Άλλα μέσα", - "queue_hint": "Ουρά και λήψεις θα χαθούν κατά την επανεκκίνηση της εφαρμογής", - "no_items_in_queue": "Δεν υπάρχουν αντικείμενα στην ουρά", "no_downloaded_items": "Δεν Έχουν Ληφθεί Αντικείμενα", "delete_all_movies_button": "Διαγραφή Όλων Των Ταινιών", "delete_all_series_button": "Διαγραφή Όλων Των Τηλεοπτικών Σειρών", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Αποτυχία διαγραφής Όλων των TV-Series", "deleted_media_successfully": "Διαγράφηκε άλλο μέσο επιτυχώς!", "failed_to_delete_media": "Αποτυχία διαγραφής άλλων πολυμέσων", - "download_deleted": "Η Λήψη Διαγράφηκε", "download_cancelled": "Download Cancelled", "could_not_delete_download": "Αδυναμία Διαγραφής Λήψης", - "download_paused": "Λήψη Σε Παύση", - "could_not_pause_download": "Αδυναμία Παύσης Λήψης", - "download_resumed": "Συνέχιση Λήψης", - "could_not_resume_download": "Αδυναμία Συνέχισης Λήψης", "download_completed": "Η Λήψη Ολοκληρώθηκε", "download_failed": "Download Failed", "download_failed_for_item": "Η λήψη απέτυχε για το {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "Όλα τα αρχεία, οι φάκελοι και οι εργασίες διαγράφηκαν με επιτυχία", - "failed_to_clean_cache_directory": "Αποτυχία καθαρισμού φακέλου προσωρινής μνήμης", "could_not_get_download_url_for_item": "Αδυναμία λήψης του URL λήψης για το {{itemName}}", - "go_to_downloads": "Μετάβαση στις λήψεις", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Αναζήτηση...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Αδυναμία δημιουργίας ροής για το Chromecast", "message_from_server": "Μήνυμα από το διακομιστή: {{message}}", "next_episode": "Επόμενο Επεισόδιο", - "refresh_tracks": "Ανανέωση Κομματιών", - "audio_tracks": "Κομμάτια Ήχου:", - "playback_state": "Κατάσταση Αναπαραγωγής:", - "index": "Δείκτης:", "continue_watching": "Συνέχεια Παρακολούθησης", "go_back": "Μετάβαση Πίσω", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Εμφάνιση Περισσότερων", "show_less": "Εμφάνιση Λιγότερων", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Επόμενο", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/es.json b/translations/es.json index 03216dee..57f30e9b 100644 --- a/translations/es.json +++ b/translations/es.json @@ -261,43 +261,6 @@ "None": "Nada", "OnlyForced": "Solo forzados" }, - "text_color": "Color del texto", - "background_color": "Color de fondo", - "outline_color": "Color de salida", - "outline_thickness": "Grosor exterior", - "background_opacity": "Opacidad de fondo", - "outline_opacity": "Opacidad exterior", - "bold_text": "Texto en negrita", - "colors": { - "Black": "Negro", - "Gray": "Gris", - "Silver": "Plata", - "White": "Blanco", - "Maroon": "Granate", - "Red": "Rojo", - "Fuchsia": "Fucsia", - "Yellow": "Amarillo", - "Olive": "Oliva", - "Green": "Verde", - "Teal": "Cereal", - "Lime": "Lima", - "Purple": "Morado", - "Navy": "Naval", - "Blue": "Azul", - "Aqua": "Agua" - }, - "thickness": { - "None": "Ninguno", - "Thin": "Ligero", - "Normal": "Normal", - "Thick": "Grosor" - }, - "subtitle_color": "Color de los Subtítulos", - "subtitle_background_color": "Color del fondo", - "subtitle_font": "Fuente de los subtítulos", - "ksplayer_title": "Ajustes de KSPlayer", - "hardware_decode": "Decodificación de hardware", - "hardware_decode_description": "Utilizar la aceleración de hardware para la decodificación de vídeo. Deshabilite si experimenta problemas de reproducción.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "Configuración de subtítulos VLC", - "hint": "Personalizar la apariencia de los subtítulos para el reproductor VLC. Los cambios tendrán efecto en la próxima reproducción.", - "text_color": "Color del texto", - "background_color": "Color del fondo", - "background_opacity": "Opacidad del fondo", - "outline_color": "Color del contorno", - "outline_opacity": "Opacidad del contorno", - "outline_thickness": "Grosor del contorno", - "bold": "Texto en negrita", - "margin": "Margen inferior" - }, - "video_player": { - "title": "Reproductor de vídeo", - "video_player": "Reproductor de vídeo", - "video_player_description": "Elige qué reproductor de vídeo en iOS", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Otros", "video_orientation": "Orientación de vídeo", @@ -351,11 +295,6 @@ "UNKNOWN": "Desconocida" }, "safe_area_in_controls": "Área segura en controles", - "video_player": "Reproductor de vídeo", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimental + PiP)" - }, "show_custom_menu_links": "Mostrar enlaces de menú personalizados", "show_large_home_carousel": "Mostrar carrusel del menú principal grande (beta)", "hide_libraries": "Ocultar bibliotecas", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Máximo número de episodios de Auto Play", "disabled": "Deshabilitado" }, - "downloads": { - "downloads_title": "Descargas" - }, "music": { "title": "Música", "playback_title": "Reproducir", @@ -378,13 +314,12 @@ "caching_title": "Almacenando en caché", "caching_description": "Cachear automáticamente las próximas canciones para una reproducción más suave.", "lookahead_enabled": "Activar el look-Ahead Cache", - "lookahead_count": "", + "lookahead_count": "Songs to pre-cache", "max_cache_size": "Tamaño máximo del caché" }, "plugins": { "plugins_title": "Plugins", "jellyseerr": { - "jellyseerr_warning": "Esta integración está en sus primeras etapas. Cuenta con posibles cambios.", "server_url": "URL del servidor", "server_url_hint": "Ejemplo: http(s)://tu-dominio.url\n(añade el puerto si es necesario)", "server_url_placeholder": "URL de Jellyseerr...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Leer más sobre Marlin.", "save_button": "Guardar", "toasts": { - "saved": "Guardado", - "refreshed": "Ajustes del servidor actualizados" - }, - "refresh_from_server": "Actualizar ajustes del servidor" + "saved": "Guardado" + } }, "streamystats": { - "enable_streamystats": "Habilitar Streamystats", "disable_streamystats": "Deshabilitar Streamystats", "enable_search": "Usar para la búsqueda", "url": "URL", "server_url_placeholder": "http(s)://streamystats.ejemplo.com", "streamystats_search_hint": "Introduzca la URL para su servidor Streamystats. La URL debe incluir http o https y opcionalmente el puerto.", "read_more_about_streamystats": "Leer más sobre Streamystats.", - "save_button": "Guardar", "save": "Guardar", "features_title": "Características", - "home_sections_title": "Secciones de inicio", "enable_movie_recommendations": "Recomendaciones de películas", "enable_series_recommendations": "Recomendaciones de series", "enable_promoted_watchlists": "Listas promocionadas", @@ -445,8 +375,7 @@ "refresh_from_server": "Actualizar ajustes desde el servidor" }, "kefinTweaks": { - "watchlist_enabler": "Habilitar la integración de la lista de seguimiento", - "watchlist_button": "Activar o desactivar la integración de la lista de seguimiento" + "watchlist_enabler": "Habilitar la integración de la lista de seguimiento" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Eliminar todos los archivos descargados", "music_cache_title": "Caché de música", "music_cache_description": "Cachear automáticamente las canciones mientras escuchas una reproducción más suave y soporte sin conexión", - "enable_music_cache": "Activar Caché de Música", "clear_music_cache": "Borrar Caché de Música", "music_cache_size": "Caché {{Tamaño}}", "music_cache_cleared": "Caché de música eliminado", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Sistema" }, "toasts": { - "error_deleting_files": "Error al eliminar archivos", - "background_downloads_enabled": "Descargas en segundo plano habilitadas", - "background_downloads_disabled": "Descargas en segundo plano deshabilitadas" + "error_deleting_files": "Error al eliminar archivos" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Descargas", "series": "Series", "movies": "Películas", - "queue": "Cola", "other_media": "Otros medios", - "queue_hint": "La cola de series y películas se perderá al reiniciar la app", - "no_items_in_queue": "No hay ítems en la cola", "no_downloaded_items": "No hay ítems descargados", "delete_all_movies_button": "Eliminar todas las películas", "delete_all_series_button": "Eliminar todas las series", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Error al eliminar todas las series", "deleted_media_successfully": "¡Otros medios eliminados con éxito!", "failed_to_delete_media": "Error al eliminar otros medios", - "download_deleted": "Descarga eliminada", "download_cancelled": "Descarga cancelada", "could_not_delete_download": "No se pudo eliminar la descarga", - "download_paused": "Descarga pausada", - "could_not_pause_download": "No se pudo pausar la descarga", - "download_resumed": "Descarga rebatida", - "could_not_resume_download": "No se pudo reiniciar la descarga", "download_completed": "Descarga completada", "download_failed": "Descarga fallida", "download_failed_for_item": "Descarga fallida para {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} ya está descargando", "all_files_deleted": "Todas las descargas eliminadas correctamente", "files_deleted_by_type": "{{count}} {{type}} eliminado", - "all_files_folders_and_jobs_deleted_successfully": "Todos los archivos, carpetas y trabajos eliminados con éxito", - "failed_to_clean_cache_directory": "Error al limpiar el directorio de caché", "could_not_get_download_url_for_item": "No se pudo obtener la URL de descarga para {{itemName}}", - "go_to_downloads": "Ir a descargas", "file_deleted": "{{item}} eliminado" } } @@ -583,16 +495,17 @@ "none": "Nada", "track": "Pista", "cancel": "Cancelar", - "stop": "Stop", "delete": "Borrar", "ok": "Aceptar", "remove": "Eliminar", - "next": "Siguiente", "back": "Atrás", "continue": "Continuar", "verifying": "Verificando...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Buscar...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "No se pudo crear el Steam para Chromecast", "message_from_server": "Mensaje del servidor: {{message}}", "next_episode": "Siguiente episodio", - "refresh_tracks": "Refrescar pistas", - "audio_tracks": "Pistas de audio:", - "playback_state": "Estado de la reproducción:", - "index": "Índice:", "continue_watching": "Continuar viendo", "go_back": "Volver", "downloaded_file_title": "Ya tienes este archivo descargado", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Mostrar más", "show_less": "Mostrar menos", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Siguiente", @@ -888,13 +798,9 @@ "playlists": "Listas de reproducción", "tracks": "Canciones" }, - "filters": { - "all": "Todas" - }, "recently_added": "Recientemente añadido", "recently_played": "Reproducidos Recientemente", "frequently_played": "Reproducido con frecuencia", - "explore": "Explorar", "top_tracks": "Canciones Populares", "play": "Reproducir", "shuffle": "Aleatorio", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/fi.json b/translations/fi.json index 3128b3be..471b3c29 100644 --- a/translations/fi.json +++ b/translations/fi.json @@ -261,43 +261,6 @@ "None": "Ei mitään", "OnlyForced": "Vain pakotettu" }, - "text_color": "Tekstin väri", - "background_color": "Taustaväri", - "outline_color": "Ääriviivan väri", - "outline_thickness": "Ääriviivan paksuus", - "background_opacity": "Taustan läpinäkyvyys", - "outline_opacity": "Ääriviivan Läpinäkyvyys", - "bold_text": "Lihavoi teksti", - "colors": { - "Black": "Musta", - "Gray": "Harmaa", - "Silver": "Hopea", - "White": "Valkoinen", - "Maroon": "Maroon", - "Red": "Punainen", - "Fuchsia": "Fuchsia", - "Yellow": "Keltainen", - "Olive": "Oliivit", - "Green": "Vihreä", - "Teal": "Sinappi", - "Lime": "Limea", - "Purple": "Violetti", - "Navy": "Laiva", - "Blue": "Sininen", - "Aqua": "Vesi" - }, - "thickness": { - "None": "Ei mitään", - "Thin": "Ohut", - "Normal": "Normaali", - "Thick": "Paksu" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Muut", "video_orientation": "Videon suunta", @@ -351,11 +295,6 @@ "UNKNOWN": "Tuntematon" }, "safe_area_in_controls": "Turvallinen alue ohjaimissa", - "video_player": "Videosoitin", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Kokeellinen + PiP)" - }, "show_custom_menu_links": "Näytä mukautetut valikkolinkit", "show_large_home_carousel": "Näytä suuri kotikaruselli (beta)", "hide_libraries": "Piilota kirjastot", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Automaattisten Toistojaksojen Maksimimäärä", "disabled": "Pois Käytöstä" }, - "downloads": { - "downloads_title": "Lataukset" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Liitännäiset", "jellyseerr": { - "jellyseerr_warning": "Tämä integraatio on alkuvaiheessa. Odota muutoksia.", "server_url": "Palvelimen URL", "server_url_hint": "Esimerkki: http(s)://verkkotunnus.url\n(lisää portti tarvittaessa)", "server_url_placeholder": "Jellyseerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Lue lisää Marlinista.", "save_button": "Tallenna", "toasts": { - "saved": "Tallennettu", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Tallennettu" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Poista kaikki ladatut tiedostot", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Järjestelmä" }, "toasts": { - "error_deleting_files": "Virhe tiedostojen poistamisessa", - "background_downloads_enabled": "Taustalataukset käytössä", - "background_downloads_disabled": "Taustalataukset pois käytöstä" + "error_deleting_files": "Virhe tiedostojen poistamisessa" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Lataukset", "series": "TV-sarjat", "movies": "Elokuvat", - "queue": "Jonot", "other_media": "Muu media", - "queue_hint": "Jonot ja lataukset menetetään sovelluksen uudelleenkäynnistyksen yhteydessä", - "no_items_in_queue": "Ei kohteita jonossa", "no_downloaded_items": "Ei ladattuja kohteita", "delete_all_movies_button": "Poista kaikki elokuvat", "delete_all_series_button": "Poista kaikki TV-sarjat", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Kaikkien TV-sarjojen poistaminen epäonnistui", "deleted_media_successfully": "Muu media poistettu onnistuneesti!", "failed_to_delete_media": "Muiden medioiden poistaminen epäonnistui", - "download_deleted": "Lataus Poistettu", "download_cancelled": "Lataus peruutettu", "could_not_delete_download": "Latausta Ei Voitu Poistaa", - "download_paused": "Lataus Keskeytetty", - "could_not_pause_download": "Latausta Ei Voitu Keskeyttää", - "download_resumed": "Lataus Jatketaan", - "could_not_resume_download": "Latausta Ei Voitu Jatkaa.", "download_completed": "Lataus valmis", "download_failed": "Lataus epäonnistui", "download_failed_for_item": "Lataus epäonnistui kohteelle {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "Kaikki lataukset poistettu onnistuneesti", "files_deleted_by_type": "{{count}} {{type}} poistettu", - "all_files_folders_and_jobs_deleted_successfully": "Kaikki tiedostot, kansiot ja tehtävät poistettu onnistuneesti", - "failed_to_clean_cache_directory": "Välimuistin hakemiston puhdistus epäonnistui", "could_not_get_download_url_for_item": "Latauksen URL-osoitetta ei voitu ladata {{itemName}}", - "go_to_downloads": "Siirry latauksiin", "file_deleted": "{{item}} poistettu" } } @@ -583,16 +495,17 @@ "none": "Ei mitään", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Haku...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Suoratoistoa ei voitu luoda Chromecastia varten", "message_from_server": "Viesti palvelimelta: {{message}}", "next_episode": "Seuraava Jakso", - "refresh_tracks": "Päivitä Kappaleet", - "audio_tracks": "Ääni Kappaleet:", - "playback_state": "Toiston Tila:", - "index": "Indeksi:", "continue_watching": "Jatka katsomista", "go_back": "Siirry Takaisin", "downloaded_file_title": "Tämä tiedosto on ladattuna", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Näytä Lisää", "show_less": "Näytä Vähemmän", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Seuraava", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/fr.json b/translations/fr.json index 8aaa3aba..daf35a82 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -261,43 +261,6 @@ "None": "Aucun", "OnlyForced": "Forcés seulement" }, - "text_color": "Couleur du texte", - "background_color": "Couleur d'arrière-plan", - "outline_color": "Couleur du contour", - "outline_thickness": "Épaisseur du contour", - "background_opacity": "Opacité de l'arrière-plan", - "outline_opacity": "Opacité du contour", - "bold_text": "Texte en gras", - "colors": { - "Black": "Noir", - "Gray": "Gris", - "Silver": "Argent", - "White": "Blanc", - "Maroon": "Marron", - "Red": "Rouge", - "Fuchsia": "Fuchsia", - "Yellow": "Jaune", - "Olive": "Olive", - "Green": "Vert", - "Teal": "Bleu canard", - "Lime": "Citron vert", - "Purple": "Violet", - "Navy": "Bleu marine", - "Blue": "Bleu", - "Aqua": "Bleu turquoise" - }, - "thickness": { - "None": "Aucun", - "Thin": "Maigre", - "Normal": "Normale", - "Thick": "Épais" - }, - "subtitle_color": "Couleur des sous-titres", - "subtitle_background_color": "Couleur d'arrière-plan", - "subtitle_font": "Police des sous-titres", - "ksplayer_title": "Paramètres de KSPlayer", - "hardware_decode": "Décodage matériel", - "hardware_decode_description": "Utilisez l’accélération matérielle pour le décodage vidéo. Désactivez si vous rencontrez des problèmes de lecture.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "Paramètres des sous-titres VLC", - "hint": "Personnaliser l'apparence des sous-titres pour le lecteur VLC. Les changements prennent effet lors de la lecture suivante.", - "text_color": "Couleur du texte", - "background_color": "Couleur d'arrière-plan", - "background_opacity": "Opacité de l'arrière-plan", - "outline_color": "Couleur du contour", - "outline_opacity": "Opacité du contour", - "outline_thickness": "Épaisseur du contour", - "bold": "Texte en gras", - "margin": "Marge inférieure" - }, - "video_player": { - "title": "Lecteur vidéo", - "video_player": "Lecteur vidéo", - "video_player_description": "Choisissez le lecteur vidéo à utiliser sur iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Autres", "video_orientation": "Orientation vidéo", @@ -351,11 +295,6 @@ "UNKNOWN": "Inconnu" }, "safe_area_in_controls": "Zone de sécurité dans les contrôles", - "video_player": "Lecteur vidéo", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Expérimental + PiP)" - }, "show_custom_menu_links": "Afficher les liens personnalisés", "show_large_home_carousel": "Afficher le grand carrousel d’accueil (bêta)", "hide_libraries": "Cacher des bibliothèques", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Nombre d'épisodes en lecture automatique max", "disabled": "Désactivé" }, - "downloads": { - "downloads_title": "Téléchargements" - }, "music": { "title": "Musique", "playback_title": "Lecture", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Plugins", "jellyseerr": { - "jellyseerr_warning": "Cette intégration est dans ses débuts. Attendez-vous à ce que des choses changent.", "server_url": "URL du serveur", "server_url_hint": "Exemple : http(s)://votre-domaine.url\n(ajouter le port si nécessaire)", "server_url_placeholder": "URL de Seerr...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "En savoir plus sur Marlin.", "save_button": "Enregistrer", "toasts": { - "saved": "Enregistré", - "refreshed": "Paramètres actualisés depuis le serveur" - }, - "refresh_from_server": "Rafraîchir les paramètres depuis le serveur" + "saved": "Enregistré" + } }, "streamystats": { - "enable_streamystats": "Activer Streamystats", "disable_streamystats": "Désactiver Streamystats", "enable_search": "Utiliser pour la recherche", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Entrez l'URL de votre serveur Streamystats. L'URL doit inclure http ou https et éventuellement le port.", "read_more_about_streamystats": "En savoir plus sur Streamystats.", - "save_button": "Enregistrer", "save": "Enregistrer", "features_title": "Fonctionnalités", - "home_sections_title": "Sections de la page d´accueil", "enable_movie_recommendations": "Recommandations de films", "enable_series_recommendations": "Recommandations de séries", "enable_promoted_watchlists": "Listes de lecture promues", @@ -445,8 +375,7 @@ "refresh_from_server": "Rafraîchir les paramètres depuis le serveur" }, "kefinTweaks": { - "watchlist_enabler": "Activer l'intégration de notre liste de lecture", - "watchlist_button": "Activer l'intégration de notre liste de lecture" + "watchlist_enabler": "Activer l'intégration de notre liste de lecture" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Supprimer tous les fichiers téléchargés", "music_cache_title": "Mise en cache de la musique", "music_cache_description": "Mettez automatiquement en cache les chansons au fur et à mesure que vous écoutez pour une lecture plus fluide et une prise en charge hors ligne", - "enable_music_cache": "Activer le cache sur la musique", "clear_music_cache": "Vider le cache de la musique", "music_cache_size": "{{size}} mis en cache", "music_cache_cleared": "Cache de musique effacé", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Système" }, "toasts": { - "error_deleting_files": "Erreur lors de la suppression des fichiers", - "background_downloads_enabled": "Téléchargements en arrière-plan activés", - "background_downloads_disabled": "Téléchargements en arrière-plan désactivés" + "error_deleting_files": "Erreur lors de la suppression des fichiers" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Téléchargements", "series": "Séries", "movies": "Films", - "queue": "File d'attente", "other_media": "Autres médias", - "queue_hint": "La file d'attente et les téléchargements seront perdus au redémarrage de l'application", - "no_items_in_queue": "Aucun téléchargement de média dans la file d'attente", "no_downloaded_items": "Aucun média téléchargé", "delete_all_movies_button": "Supprimer tous les films", "delete_all_series_button": "Supprimer toutes les séries", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Échec de la suppression de toutes les séries", "deleted_media_successfully": "Les autres médias ont été supprimés avec succès !", "failed_to_delete_media": "Échec de la suppression d'un autre média", - "download_deleted": "Téléchargement supprimé", "download_cancelled": "Téléchargement annulé", "could_not_delete_download": "Impossible de supprimer le téléchargement", - "download_paused": "Téléchargement en pause", - "could_not_pause_download": "Impossible de mettre en pause le téléchargement", - "download_resumed": "Reprise du téléchargement", - "could_not_resume_download": "Impossible de reprendre le téléchargement", "download_completed": "Téléchargement terminé", "download_failed": "Échec du téléchargement", "download_failed_for_item": "Échec du téléchargement pour {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} est déjà en cours de téléchargement", "all_files_deleted": "Tous les téléchargements supprimés avec succès", "files_deleted_by_type": "{{count}} {{type}} supprimé", - "all_files_folders_and_jobs_deleted_successfully": "Tous les fichiers, dossiers et tâches ont été supprimés avec succès", - "failed_to_clean_cache_directory": "Échec du nettoyage du répertoire de cache", "could_not_get_download_url_for_item": "Échec d'obtention de l'URL de téléchargement pour {{itemName}}", - "go_to_downloads": "Aller aux téléchargements", "file_deleted": "{{item}} supprimé" } } @@ -583,16 +495,17 @@ "none": "Aucun", "track": "Suivre", "cancel": "Annuler", - "stop": "Stop", "delete": "Supprimer", "ok": "Ok", "remove": "Retirer", - "next": "Suivant", "back": "Précédent", "continue": "Continuer", "verifying": "Vérification...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Rechercher...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Impossible de créer un flux sur la Chromecast", "message_from_server": "Message du serveur : {{message}}", "next_episode": "Épisode suivant", - "refresh_tracks": "Rafraîchir les pistes", - "audio_tracks": "Pistes audio :", - "playback_state": "État de lecture :", - "index": "Index :", "continue_watching": "Continuer à regarder", "go_back": "Retour", "downloaded_file_title": "Ce fichier est téléchargé", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Afficher plus", "show_less": "Afficher moins", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Suivant", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "morceaux" }, - "filters": { - "all": "Toutes" - }, "recently_added": "Ajoutés récemment", "recently_played": "Récemment joué", "frequently_played": "Fréquemment joué", - "explore": "Explorez", "top_tracks": "Top chansons", "play": "Lecture", "shuffle": "Aléatoire", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/he.json b/translations/he.json index 81de0117..a5fff137 100644 --- a/translations/he.json +++ b/translations/he.json @@ -261,43 +261,6 @@ "None": "ללא", "OnlyForced": "רק כפוי" }, - "text_color": "צבע הטקסט", - "background_color": "צבע רקע", - "outline_color": "צבע קו מתאר", - "outline_thickness": "עובי קו מתאר", - "background_opacity": "שקיפות רקע", - "outline_opacity": "אטימות קו מתאר", - "bold_text": "טקסט בולט", - "colors": { - "Black": "שחור", - "Gray": "אפור", - "Silver": "כסף", - "White": "לבן", - "Maroon": "חום ערמוני", - "Red": "אדום", - "Fuchsia": "פוקסיה", - "Yellow": "צהוב", - "Olive": "זית", - "Green": "ירוק", - "Teal": "תכלת", - "Lime": "ירוק ליים", - "Purple": "סגול", - "Navy": "כחול כהה", - "Blue": "כחול", - "Aqua": "כחול בהיר" - }, - "thickness": { - "None": "ללא", - "Thin": "דק", - "Normal": "רגיל", - "Thick": "עבה" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "נגן וידאו", - "video_player": "נגן וידאו", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "אחר", "video_orientation": "כיוון וידיאו", @@ -351,11 +295,6 @@ "UNKNOWN": "לא ידוע" }, "safe_area_in_controls": "איזור בטוח בפקדים", - "video_player": "נגן וידאו", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (ניסיוני + נגן בתוך נגן)" - }, "show_custom_menu_links": "הצג קישורים לתפריטים מותאמים אישית", "show_large_home_carousel": "הצג קרוסלה גדולה במסך הבית (בטא)", "hide_libraries": "הסתר ספריות", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "כמות פרקים מקסימלית לניגון אוטומטי", "disabled": "כבוי" }, - "downloads": { - "downloads_title": "הורדות" - }, "music": { "title": "מוזיקה", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "תוספים", "jellyseerr": { - "jellyseerr_warning": "חלק זה נמצא עדיין בשלבים מוקדמים. צפו שדברים ישתנו.", "server_url": "כתובת ה-URL של השרת", "server_url_hint": "לדוגמא: http(s)://your-host.url\n(הוסף פורט במידת הצורך)", "server_url_placeholder": "כתובת ה-URL של Seerr", @@ -413,23 +348,18 @@ "read_more_about_marlin": "קרא עוד על Marlin.", "save_button": "שמור", "toasts": { - "saved": "נשמר", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "נשמר" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "מחק את כל הקבצים שהורדו", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "מערכת" }, "toasts": { - "error_deleting_files": "שגיאה במחיקת קבצים", - "background_downloads_enabled": "הורדה ברקע מופעלת", - "background_downloads_disabled": "הורדה ברקע כבויה" + "error_deleting_files": "שגיאה במחיקת קבצים" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "הורדות", "series": "סדרות", "movies": "סרטים", - "queue": "תוֹר", "other_media": "תוכן אחר", - "queue_hint": "התור וההורדות יאבדו בפתיחה מחדש של האפליקציה", - "no_items_in_queue": "אין פרטים בתור", "no_downloaded_items": "אין פריטים שהורדו", "delete_all_movies_button": "מחק את כל הסרטים", "delete_all_series_button": "מחק את כל הסדרות", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "נכשל במחיקת כל הסדרות", "deleted_media_successfully": "כל שאר התוכן נמחק בהצלחה!", "failed_to_delete_media": "נכשל במחיקת שאר התוכן", - "download_deleted": "ההורדה נמחקה", "download_cancelled": "ההורדה בוטלה", "could_not_delete_download": "לא היה ניתן למחוק את ההורדה", - "download_paused": "ההורדה נעצרה", - "could_not_pause_download": "לא היה ניתן לעצור את ההורדה", - "download_resumed": "ההורדה חודשה", - "could_not_resume_download": "לא היה ניתן לחדש את ההורדה", "download_completed": "ההורדה הושלמה", "download_failed": "ההורדה נכשלה", "download_failed_for_item": "ההורדה נכשלה עבור {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} כבר נמצא בהורדה", "all_files_deleted": "כל ההורדות נמחקו בהצלחה", "files_deleted_by_type": "{{count}} {{type}} נמחקו", - "all_files_folders_and_jobs_deleted_successfully": "כל הקבצים, התיקיות והעבודות נמחקו בהצלחה", - "failed_to_clean_cache_directory": "נכשל בניסיון למחוק את תיקיית המטמון", "could_not_get_download_url_for_item": "לא היה ניתן להשיג את קישור ההורדה של {{itemName}}", - "go_to_downloads": "עבור להורדות", "file_deleted": "{{item}} נמחק" } } @@ -583,16 +495,17 @@ "none": "ללא", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "חפש...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "נכשל ביצירת זרם עבור Chromecast", "message_from_server": "הודעה מהשרת: {{message}}", "next_episode": "הפרק הבא", - "refresh_tracks": "רענן רצועות", - "audio_tracks": "רצועות שמע:", - "playback_state": "מצב ניגון:", - "index": "מיקום:", "continue_watching": "המשך לצפות", "go_back": "חזור", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "הצג עוד", "show_less": "הצג פחות", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "הבא", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/hu.json b/translations/hu.json index 0a428ed6..0ca2121e 100644 --- a/translations/hu.json +++ b/translations/hu.json @@ -261,43 +261,6 @@ "None": "Nincs", "OnlyForced": "Csak Kényszerített" }, - "text_color": "Szövegszín", - "background_color": "Háttérszín", - "outline_color": "Körvonal színe", - "outline_thickness": "Körvonal Vastagsága", - "background_opacity": "Háttér Áttetszőség", - "outline_opacity": "Körvonal Áttetszőség", - "bold_text": "Félkövér Szöveg", - "colors": { - "Black": "Fekete", - "Gray": "Szürke", - "Silver": "Ezüst", - "White": "Fehér", - "Maroon": "Sötétvörös", - "Red": "Piros", - "Fuchsia": "Fukszia", - "Yellow": "Sárga", - "Olive": "Oliva", - "Green": "Zöld", - "Teal": "Türkiz", - "Lime": "Lime", - "Purple": "Lila", - "Navy": "Sötétkék", - "Blue": "Kék", - "Aqua": "Türkizkék" - }, - "thickness": { - "None": "Nincs", - "Thin": "Vékony", - "Normal": "Normál", - "Thick": "Vastag" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Egyéb", "video_orientation": "Videó Tájolás", @@ -351,11 +295,6 @@ "UNKNOWN": "Ismeretlen" }, "safe_area_in_controls": "Biztonsági Sáv a Vezérlőkben", - "video_player": "Videólejátszó", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Kísérleti + PiP)" - }, "show_custom_menu_links": "Egyéni Menülinkek Megjelenítése", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "Könyvtárak Elrejtése", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Max. Auto. Epizódlejátszás", "disabled": "Letiltva" }, - "downloads": { - "downloads_title": "Letöltések" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Bővítmények", "jellyseerr": { - "jellyseerr_warning": "Ez az integráció még korai stádiumban van. Számíts a változásokra.", "server_url": "Szerver URL", "server_url_hint": "Példa: http(s)://a-te-szolgáltatód.url\n(adj meg portot, ha szükséges)", "server_url_placeholder": "Jellyseerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Tudj Meg Többet a Marlinról", "save_button": "Mentés", "toasts": { - "saved": "Mentve", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Mentve" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Minden Letöltött Fájl Törlése", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Rendszer" }, "toasts": { - "error_deleting_files": "Hiba a Fájlok Törlésekor", - "background_downloads_enabled": "Background downloads enabled", - "background_downloads_disabled": "Background downloads disabled" + "error_deleting_files": "Hiba a Fájlok Törlésekor" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Letöltések", "series": "Sorozatok", "movies": "Filmek", - "queue": "Sor", "other_media": "Other media", - "queue_hint": "A sor és a letöltések az alkalmazás újraindításakor elvesznek", - "no_items_in_queue": "Nincs Elem a Sorban", "no_downloaded_items": "Nincsenek Letöltött Elemek", "delete_all_movies_button": "Összes Film Törlése", "delete_all_series_button": "Összes Sorozat Törlése", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Nem Sikerült Törölni Az Összes Sorozatot", "deleted_media_successfully": "Deleted other media Successfully!", "failed_to_delete_media": "Failed to Delete other media", - "download_deleted": "Letöltés Törölve", "download_cancelled": "Download Cancelled", "could_not_delete_download": "Nem Sikerült Törölni a Letöltést", - "download_paused": "Letöltés Szüneteltetve", - "could_not_pause_download": "Nem Sikerült Szüneteltetni a Letöltést", - "download_resumed": "Letöltés Folytatva", - "could_not_resume_download": "Nem Sikerült Folytatni a Letöltést", "download_completed": "Letöltés Befejezve", "download_failed": "Download Failed", "download_failed_for_item": "A(z) {{item}} letöltése sikertelen - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "Minden fájl, mappa és feladat sikeresen törölve", - "failed_to_clean_cache_directory": "Failed to clean cache directory", "could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}", - "go_to_downloads": "Ugrás a Letöltésekhez", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Keresés...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "A Chromecast stream létrehozása sikertelen volt", "message_from_server": "Üzenet a szervertől: {{message}}", "next_episode": "Következő Epizód", - "refresh_tracks": "Sávok Frissítése", - "audio_tracks": "Hangsávok:", - "playback_state": "Lejátszás Állapota:", - "index": "Index:", "continue_watching": "Folytatás", "go_back": "Vissza", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Több Megjelenítése", "show_less": "Kevesebb Megjelenítése", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Következő", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/it.json b/translations/it.json index 3cdfd1c6..b714aafe 100644 --- a/translations/it.json +++ b/translations/it.json @@ -4,8 +4,8 @@ "error_title": "Errore", "login_title": "Accesso", "login_to_title": "Accedi a", - "select_user": "Select a user to log in", - "add_user_to_login": "Add a user to log in", + "select_user": "Seleziona un utente per accedere", + "add_user_to_login": "Aggiungi un utente per accedere", "add_user": "Add User", "username_placeholder": "Nome utente", "password_placeholder": "Password", @@ -33,7 +33,7 @@ "connect_button": "Connetti", "previous_servers": "server precedente", "clear_button": "Cancella", - "swipe_to_remove": "Swipe to remove", + "swipe_to_remove": "Scorri per rimuovere", "search_for_local_servers": "Ricerca dei server locali", "searching": "Cercando...", "servers": "Server", @@ -41,46 +41,46 @@ "session_expired": "Session Expired", "please_login_again": "La tua sessione è scaduta. Si prega di eseguire nuovamente l'accesso.", "remove_saved_login": "Remove Saved Login", - "remove_saved_login_description": "This will remove your saved credentials for this server. You'll need to enter your username and password again next time.", - "accounts_count": "{{count}} accounts", + "remove_saved_login_description": "Questo rimuoverà le tue credenziali salvate per questo server. Dovrai inserire nuovamente il tuo nome utente e la password la prossima volta.", + "accounts_count": "Account {{count}}", "select_account": "Select Account", "add_account": "Add Account", - "remove_account_description": "This will remove the saved credentials for {{username}}.", + "remove_account_description": "Questo rimuoverà le credenziali salvate per {{username}}.", "remove_server": "Remove Server", - "remove_server_description": "This will remove {{server}} and all saved accounts from your list.", + "remove_server_description": "Questo rimuoverà {{server}} e tutti gli account salvati dall'elenco.", "select_your_server": "Select Your Server", - "add_server_to_get_started": "Add a server to get started", + "add_server_to_get_started": "Aggiungi un server per iniziare", "add_server": "Add Server", "change_server": "Change Server" }, "save_account": { "title": "Save Account", - "save_for_later": "Save this account", + "save_for_later": "Salva questo account", "security_option": "Security Option", - "no_protection": "No protection", - "no_protection_desc": "Quick login without authentication", - "pin_code": "PIN code", - "pin_code_desc": "4-digit PIN required when switching", - "password": "Re-enter password", - "password_desc": "Password required when switching", - "save_button": "Save", - "cancel_button": "Cancel" + "no_protection": "Nessuna Protezione", + "no_protection_desc": "Accesso rapido senza autenticazione", + "pin_code": "Codice PIN", + "pin_code_desc": "PIN di 4 cifre richiesto quando si cambia utente", + "password": "Inserisci nuovamente la password", + "password_desc": "Password richiesta quando si cambia", + "save_button": "Salva", + "cancel_button": "Annulla" }, "pin": { - "enter_pin": "Enter PIN", - "enter_pin_for": "Enter PIN for {{username}}", - "enter_4_digits": "Enter 4 digits", - "invalid_pin": "Invalid PIN", + "enter_pin": "Inserisci il PIN", + "enter_pin_for": "Inserisci PIN per {{username}}", + "enter_4_digits": "Inserisci 4 cifre", + "invalid_pin": "PIN non valido", "setup_pin": "Set Up PIN", - "confirm_pin": "Confirm PIN", - "pins_dont_match": "PINs don't match", - "forgot_pin": "Forgot PIN?", - "forgot_pin_desc": "Your saved credentials will be removed" + "confirm_pin": "Conferma PIN", + "pins_dont_match": "I PIN non corrispondono", + "forgot_pin": "Hai dimenticato il PIN?", + "forgot_pin_desc": "Le credenziali salvate verranno rimosse" }, "password": { "enter_password": "Enter Password", - "enter_password_for": "Enter password for {{username}}", - "invalid_password": "Invalid password" + "enter_password_for": "Inserire la password per {{username}}", + "invalid_password": "Password errata" }, "home": { "checking_server_connection": "Controllo connessione server...", @@ -95,7 +95,7 @@ "oops": "Ops!", "error_message": "Qualcosa è andato storto. \nEffetturare il logout e riaccedere.", "continue_watching": "Continua a guardare", - "continue": "Continue", + "continue": "Continua", "next_up": "Prossimo", "continue_and_next_up": "Continue & Next Up", "recently_added_in": "Aggiunti di recente a {{libraryName}}", @@ -123,7 +123,7 @@ "title": "Switch User", "account": "Account", "switch_user": "Switch User on This Server", - "current": "current" + "current": "attuale" }, "categories": { "title": "Categorie" @@ -143,37 +143,37 @@ "show_series_poster_on_episode": "Show Series Poster on Episodes", "theme_music": "Theme Music", "display_size": "Display Size", - "display_size_small": "Small", - "display_size_default": "Default", - "display_size_large": "Large", + "display_size_small": "Piccolo", + "display_size_default": "Predefinito", + "display_size_large": "Grande", "display_size_extra_large": "Extra Large" }, "network": { - "title": "Network", - "local_network": "", - "auto_switch_enabled": "Auto-switch when at home", + "title": "Rete", + "local_network": "Rete locale", + "auto_switch_enabled": "Cambia automaticamente quando sei in casa", "auto_switch_description": "Automatically switch to local URL when connected to home WiFi", - "local_url": "Local URL", + "local_url": "URL locale", "local_url_hint": "Enter your local server address (e.g., http://192.168.1.100:8096)", "local_url_placeholder": "http://192.168.1.100:8096", "home_wifi_networks": "Home WiFi Networks", - "add_current_network": "Add \"{{ssid}}\"", + "add_current_network": "Aggiungi \"{{ssid}}\"", "not_connected_to_wifi": "Not connected to WiFi", - "no_networks_configured": "No networks configured", + "no_networks_configured": "Nessuna rete configurata", "add_network_hint": "Add your home WiFi network to enable auto-switching", "current_wifi": "WiFi Attuale", "using_url": "Sta utilizzando", - "local": "Local URL", - "remote": "Remote URL", - "not_connected": "Not connected", + "local": "URL locale", + "remote": "URL remoto", + "not_connected": "Non connesso", "current_server": "Current Server", - "remote_url": "Remote URL", - "active_url": "Active URL", - "not_configured": "Not configured", - "network_added": "Network added", - "network_already_added": "Network already added", + "remote_url": "URL remoto", + "active_url": "URL Attivo", + "not_configured": "Non configurato", + "network_added": "Rete aggiunta", + "network_already_added": "Rete già inserita", "no_wifi_connected": "Not connected to WiFi", - "permission_denied": "Location permission denied", + "permission_denied": "Autorizzazione alla posizione negata", "permission_denied_explanation": "Location permission is required to detect WiFi network for auto-switching. Please enable it in Settings." }, "user_info": { @@ -202,9 +202,9 @@ "buffer": { "title": "Buffer Settings", "cache_mode": "Cache Mode", - "cache_auto": "Auto", - "cache_yes": "Enabled", - "cache_no": "Disabled", + "cache_auto": "Automatico", + "cache_yes": "Abilitato", + "cache_no": "Disabilitato", "buffer_duration": "Buffer Duration", "max_cache_size": "Max Cache Size", "max_backward_cache": "Max Backward Cache" @@ -212,7 +212,7 @@ "vo_driver": { "title": "Video Output", "vo_mode": "VO Driver", - "gpu_next": "gpu-next (Recommended)", + "gpu_next": "gpu-next (Consigliato)", "gpu": "gpu" }, "gesture_controls": { @@ -224,7 +224,7 @@ "right_side_volume": "Controllo Volume Laterale Destro", "right_side_volume_description": "Scorri verso l'alto/verso il basso per regolare il volume", "hide_volume_slider": "Hide Volume Slider", - "hide_volume_slider_description": "Hide the volume slider in the video player", + "hide_volume_slider_description": "Nascondi il cursore del volume nel lettore video", "hide_brightness_slider": "Hide Brightness Slider", "hide_brightness_slider_description": "Hide the brightness slider in the video player" }, @@ -261,43 +261,6 @@ "None": "Nessuno", "OnlyForced": "Solo forzati" }, - "text_color": "Colore Del Testo", - "background_color": "Colore Di Sfondo", - "outline_color": "Colore Contorno", - "outline_thickness": "Spessore Contorno", - "background_opacity": "Opacità Dello Sfondo", - "outline_opacity": "Opacità Contorno", - "bold_text": "Bold Text", - "colors": { - "Black": "Nero", - "Gray": "Grigio", - "Silver": "Argento", - "White": "Bianco", - "Maroon": "Maroon", - "Red": "Rosso", - "Fuchsia": "Fuchsia", - "Yellow": "Giallo", - "Olive": "Olive", - "Green": "Verde", - "Teal": "Teal", - "Lime": "Lime", - "Purple": "Viola", - "Navy": "Marina", - "Blue": "Blu", - "Aqua": "Aqua" - }, - "thickness": { - "None": "Nessuno", - "Thin": "Sottile", - "Normal": "Normale", - "Thick": "Spessa" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Altro", "video_orientation": "Orientamento del video", @@ -351,11 +295,6 @@ "UNKNOWN": "Sconosciuto" }, "safe_area_in_controls": "Area sicura per i controlli", - "video_player": "Video player", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Sperimentale + PiP)" - }, "show_custom_menu_links": "Mostra i link del menu personalizzato", "show_large_home_carousel": "Mostra Carosello Grande nella Home (beta)", "hide_libraries": "Nascondi Librerie", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Numero Massimo Di Episodi Riproduzione Automatica", "disabled": "Disabilitato" }, - "downloads": { - "downloads_title": "Scaricamento" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Plugin", "jellyseerr": { - "jellyseerr_warning": "Questa integrazione è in fase iniziale. Aspettarsi cambiamenti.", "server_url": "URL del Server", "server_url_hint": "Esempio: http(s)://tuo-host.url\n(aggiungere la porta se richiesto)", "server_url_placeholder": "URL di Jellyseerr...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Leggi di più su Marlin.", "save_button": "Salva", "toasts": { - "saved": "Salvato", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Salvato" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Cancella Tutti i File Scaricati", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Sistema" }, "toasts": { - "error_deleting_files": "Errore nella cancellazione dei file", - "background_downloads_enabled": "Scaricamento in background abilitato", - "background_downloads_disabled": "Scaricamento in background disabilitato" + "error_deleting_files": "Errore nella cancellazione dei file" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Scaricati", "series": "Serie TV", "movies": "Film", - "queue": "Coda", "other_media": "Altri supporti", - "queue_hint": "La coda e gli elementi scaricati saranno persi con il riavvio dell'app", - "no_items_in_queue": "Nessun elemento in coda", "no_downloaded_items": "Nessun elemento scaricato", "delete_all_movies_button": "Cancella tutti i film", "delete_all_series_button": "Cancella tutte le serie TV", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Impossibile eliminare tutte le serie TV", "deleted_media_successfully": "Eliminato altri supporti con successo!", "failed_to_delete_media": "Impossibile eliminare altri media", - "download_deleted": "Download Eliminato", "download_cancelled": "Scaricamento annullato", "could_not_delete_download": "Impossibile Eliminare Il Download", - "download_paused": "Download In Pausa", - "could_not_pause_download": "Impossibile Sbloccare Il Download", - "download_resumed": "Download Ripreso", - "could_not_resume_download": "Impossibile Riprendere Il Download", "download_completed": "Scaricamento completato", "download_failed": "Scaricamento non riuscito", "download_failed_for_item": "Scaricamento fallito per {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} è già in download", "all_files_deleted": "Tutti i Download Eliminati con Successo", "files_deleted_by_type": "{{count}} {{type}} cancellati", - "all_files_folders_and_jobs_deleted_successfully": "Tutti i file, le cartelle e i processi sono stati eliminati con successo.", - "failed_to_clean_cache_directory": "Pulizia della directory della cache non riuscita", "could_not_get_download_url_for_item": "Impossibile ottenere l'URL di download per {{itemName}}", - "go_to_downloads": "Vai agli elementi scaricati", "file_deleted": "{{item}} cancellato" } } @@ -583,16 +495,17 @@ "none": "Nulla", "track": "Traccia", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Cerca...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Impossibile creare uno stream per Chromecast", "message_from_server": "Messaggio dal server", "next_episode": "Prossimo Episodio", - "refresh_tracks": "Aggiorna tracce", - "audio_tracks": "Tracce audio:", - "playback_state": "Stato della riproduzione:", - "index": "Indice:", "continue_watching": "Continua a guardare", "go_back": "Indietro", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Mostra di più", "show_less": "Mostra di meno", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Prossimo", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/ja.json b/translations/ja.json index 6f5b08f6..70a2ad4c 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -261,43 +261,6 @@ "None": "なし", "OnlyForced": "強制のみ" }, - "text_color": "テキストの色", - "background_color": "背景色", - "outline_color": "アウトラインの色", - "outline_thickness": "概要 厚さ", - "background_opacity": "背景の透明度", - "outline_opacity": "アウトラインの透明度", - "bold_text": "Bold Text", - "colors": { - "Black": "ブラック", - "Gray": "グレー", - "Silver": "シルバー", - "White": "白", - "Maroon": "Maroon", - "Red": "赤", - "Fuchsia": "Fuchsia", - "Yellow": "黄色", - "Olive": "オリーブ", - "Green": "緑", - "Teal": "ティール", - "Lime": "黄緑", - "Purple": "パープル", - "Navy": "海軍format@@0", - "Blue": "青", - "Aqua": "Aqua" - }, - "thickness": { - "None": "なし", - "Thin": "細いです", - "Normal": "標準", - "Thick": "濃厚な" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "その他", "video_orientation": "動画の向き", @@ -351,11 +295,6 @@ "UNKNOWN": "不明" }, "safe_area_in_controls": "コントロールの安全エリア", - "video_player": "Video player", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimental + PiP)" - }, "show_custom_menu_links": "カスタムメニューのリンクを表示", "show_large_home_carousel": "大きなヒーロー(Beta)", "hide_libraries": "ライブラリを非表示", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "自動再生エピソードの最大数", "disabled": "無効" }, - "downloads": { - "downloads_title": "ダウンロード" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "プラグイン", "jellyseerr": { - "jellyseerr_warning": "この統合はまだ初期段階です。状況が変化する可能性があります。", "server_url": "サーバーURL", "server_url_hint": "例: http(s)://your-host.url\n(必要に応じてポートを追加)", "server_url_placeholder": "Jellyseerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Marlinについて詳しく読む。", "save_button": "保存", "toasts": { - "saved": "保存しました", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "保存しました" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "すべてのダウンロードファイルを削除", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "システム" }, "toasts": { - "error_deleting_files": "ファイルの削除エラー", - "background_downloads_enabled": "バックグラウンドでのダウンロードは有効です", - "background_downloads_disabled": "バックグラウンドでのダウンロードは無効です" + "error_deleting_files": "ファイルの削除エラー" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "ダウンロード", "series": "TVシリーズ", "movies": "映画", - "queue": "キュー", "other_media": "その他のメディア", - "queue_hint": "アプリを再起動するとキューとダウンロードは失われます", - "no_items_in_queue": "キューにアイテムがありません", "no_downloaded_items": "ダウンロードしたアイテムはありません", "delete_all_movies_button": "すべての映画を削除", "delete_all_series_button": "すべてのシリーズを削除", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "すべてのシリーズを削除できませんでした", "deleted_media_successfully": "他のメディアを削除しました!", "failed_to_delete_media": "他のメディアの削除に失敗しました", - "download_deleted": "ダウンロードが削除されました", "download_cancelled": "ダウンロードをキャンセルしました", "could_not_delete_download": "ダウンロードを削除できませんでした", - "download_paused": "ダウンロードを一時停止しました", - "could_not_pause_download": "ダウンロードを一時停止できませんでした", - "download_resumed": "ダウンロード再開", - "could_not_resume_download": "ダウンロードを再開できませんでした", "download_completed": "ダウンロードが完了しました", "download_failed": "ダウンロードに失敗しました", "download_failed_for_item": "{{item}}のダウンロードに失敗しました - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "すべてのファイル、フォルダ、ジョブが正常に削除されました", - "failed_to_clean_cache_directory": "キャッシュディレクトリのクリーンアップに失敗しました", "could_not_get_download_url_for_item": "{{itemName}} のダウンロードURLを取得できませんでした", - "go_to_downloads": "ダウンロードに移動", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "検索...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Chromecastのストリームを作成できませんでした", "message_from_server": "サーバーからのメッセージ", "next_episode": "次のエピソード", - "refresh_tracks": "トラックを更新", - "audio_tracks": "音声トラック:", - "playback_state": "再生状態:", - "index": "インデックス:", "continue_watching": "視聴を続ける", "go_back": "戻る", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "もっと見る", "show_less": "少なく表示", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "次", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/ko.json b/translations/ko.json index f6d01d4b..8c6a5339 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -261,43 +261,6 @@ "None": "None", "OnlyForced": "OnlyForced" }, - "text_color": "Text Color", - "background_color": "Background Color", - "outline_color": "Outline Color", - "outline_thickness": "Outline Thickness", - "background_opacity": "Background Opacity", - "outline_opacity": "Outline Opacity", - "bold_text": "Bold Text", - "colors": { - "Black": "검정색", - "Gray": "회색", - "Silver": "은색", - "White": "흰색", - "Maroon": "밤색", - "Red": "빨간색", - "Fuchsia": "분홍색", - "Yellow": "노란색", - "Olive": "올리브 색", - "Green": "녹색", - "Teal": "청록색", - "Lime": "라임색", - "Purple": "보라색", - "Navy": "남색", - "Blue": "파란색", - "Aqua": "아쿠아색" - }, - "thickness": { - "None": "없음", - "Thin": "얇게", - "Normal": "보통", - "Thick": "굵게" - }, - "subtitle_color": "자막 색상", - "subtitle_background_color": "배경 색상", - "subtitle_font": "자막 폰트", - "ksplayer_title": "KSPlayer 설정", - "hardware_decode": "하드웨어 디코딩", - "hardware_decode_description": "비디오 디코딩에 하드웨어 가속을 사용하십시오. 재생 문제가 발생하는 경우 비활성화하십시오.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC 자막 설정", - "hint": "VLC 플레이어의 자막 표시 방식을 설정하세요. 변경 사항은 다음 재생 시 적용됩니다.", - "text_color": "글자색", - "background_color": "배경 색상", - "background_opacity": "배경 투명도", - "outline_color": "외곽선 색상", - "outline_opacity": "외곽선 투명도", - "outline_thickness": "외곽선 굵기", - "bold": "굵은 글씨", - "margin": "아래쪽 여백" - }, - "video_player": { - "title": "비디오 플레이어", - "video_player": "비디오 플레이어", - "video_player_description": "iOS 사용자는 비디오 플레이어를 선택하세요.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Other", "video_orientation": "Video Orientation", @@ -351,11 +295,6 @@ "UNKNOWN": "Unknown" }, "safe_area_in_controls": "컨트롤 안전 영역", - "video_player": "Video Player", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimental + PiP)" - }, "show_custom_menu_links": "사용자 지정 메뉴 링크 표시", "show_large_home_carousel": "대형 홈 슬라이드 배너 표시 (베타)", "hide_libraries": "라이브러리 숨기기", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Max Auto Play Episode Count", "disabled": "Disabled" }, - "downloads": { - "downloads_title": "Downloads" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Plugins", "jellyseerr": { - "jellyseerr_warning": "This integration is in its early stages. Expect things to change.", "server_url": "Server URL", "server_url_hint": "Example: http(s)://your-host.url\n(add port if required)", "server_url_placeholder": "Seerr URL", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Read More About Marlin.", "save_button": "Save", "toasts": { - "saved": "Saved", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Saved" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "시리즈 추천", "enable_promoted_watchlists": "추천 관심 목록", @@ -445,8 +375,7 @@ "refresh_from_server": "서버에서 설정 새로고침" }, "kefinTweaks": { - "watchlist_enabler": "관심 목록 통합 기능 활성화", - "watchlist_button": "관심 목록 연동 켜기/끄기" + "watchlist_enabler": "관심 목록 통합 기능 활성화" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Delete All Downloaded Files", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "음악 캐시가 삭제되었습니다", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "System" }, "toasts": { - "error_deleting_files": "Error Deleting Files", - "background_downloads_enabled": "Background downloads enabled", - "background_downloads_disabled": "Background downloads disabled" + "error_deleting_files": "Error Deleting Files" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Downloads", "series": "TV-Series", "movies": "Movies", - "queue": "Queue", "other_media": "Other media", - "queue_hint": "Queue and downloads will be lost on app restart", - "no_items_in_queue": "No Items in Queue", "no_downloaded_items": "No Downloaded Items", "delete_all_movies_button": "Delete All Movies", "delete_all_series_button": "Delete All TV-Series", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Failed to Delete All TV-Series", "deleted_media_successfully": "Deleted other media Successfully!", "failed_to_delete_media": "Failed to Delete other media", - "download_deleted": "Download Deleted", "download_cancelled": "Download Cancelled", "could_not_delete_download": "Could Not Delete Download", - "download_paused": "Download Paused", - "could_not_pause_download": "Could Not Pause Download", - "download_resumed": "Download Resumed", - "could_not_resume_download": "Could Not Resume Download", "download_completed": "Download Completed", "download_failed": "Download Failed", "download_failed_for_item": "Download failed for {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "All files, folders, and jobs deleted successfully", - "failed_to_clean_cache_directory": "Failed to clean cache directory", "could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}", - "go_to_downloads": "Go to Downloads", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Search...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast", "message_from_server": "Message from Server: {{message}}", "next_episode": "Next Episode", - "refresh_tracks": "Refresh Tracks", - "audio_tracks": "Audio Tracks:", - "playback_state": "Playback State:", - "index": "Index:", "continue_watching": "Continue Watching", "go_back": "Go Back", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Show More", "show_less": "Show Less", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Next", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/nl.json b/translations/nl.json index cab76f84..e7137439 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -261,43 +261,6 @@ "None": "Geen", "OnlyForced": "Alleen Geforceerd" }, - "text_color": "Tekst kleur", - "background_color": "Achtergrond Kleur", - "outline_color": "Kleur omlijning", - "outline_thickness": "Dikte omlijning", - "background_opacity": "Transparantie achtergrond", - "outline_opacity": "Doorzichtigheid omlijning", - "bold_text": "Bold Text", - "colors": { - "Black": "Zwart", - "Gray": "Grijs", - "Silver": "Zilver", - "White": "Wit", - "Maroon": "Kastanjebruin", - "Red": "Rood", - "Fuchsia": "Fuchsia", - "Yellow": "Geel", - "Olive": "Olijf", - "Green": "Groen", - "Teal": "Groenblauw", - "Lime": "Lichtgroen", - "Purple": "Paars", - "Navy": "Marine", - "Blue": "Blauw", - "Aqua": "Aqua" - }, - "thickness": { - "None": "Geen", - "Thin": "Dun", - "Normal": "normaal", - "Thick": "Dikke" - }, - "subtitle_color": "Kleur ondertiteling", - "subtitle_background_color": "Achtergrondkleur", - "subtitle_font": "Lettertype ondertitels", - "ksplayer_title": "KSPlayer Instellingen", - "hardware_decode": "Hardware Acceleratie", - "hardware_decode_description": "Gebruik hardware acceleratie voor video-decodering. Uitschakelen als u problemen met afspelen ondervindt.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC ondertitel instellingen", - "hint": "Aanpassen van ondertiteling voor VLC-speler. Wijzigingen worden toegepast bij het afspelen.", - "text_color": "Tekstkleur", - "background_color": "Achtergrondkleur", - "background_opacity": "Doorzichtigheid achtergrond", - "outline_color": "Kleur omlijning", - "outline_opacity": "Omtrek opaciteit", - "outline_thickness": "Omtrek dikte", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Videospeler", - "video_player": "Videospeler", - "video_player_description": "Kies welke videospeler gebruikt moet worden op iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Andere", "video_orientation": "Video oriëntatie", @@ -351,11 +295,6 @@ "UNKNOWN": "Onbekend" }, "safe_area_in_controls": "Veilig gebied in bedieningen", - "video_player": "Video player", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimentele + PiP)" - }, "show_custom_menu_links": "Aangepaste menulinks tonen", "show_large_home_carousel": "Toon grote carrousel op startpagina (bèta)", "hide_libraries": "Verberg Bibliotheken", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Max Automatisch Aflevering Aantal", "disabled": "Uitgeschakeld" }, - "downloads": { - "downloads_title": "Downloads" - }, "music": { "title": "Muziek", "playback_title": "Afspelen", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Uitbreidingen", "jellyseerr": { - "jellyseerr_warning": "Deze integratie is nog in een vroeg stadium. Verwacht dat zaken nog veranderen.", "server_url": "Server-URL", "server_url_hint": "Voorbeeld: http(s)://je-host.url\n(indien nodig: voeg de poort toe)", "server_url_placeholder": "Jellyseerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Lees meer over Marlin.", "save_button": "Opslaan", "toasts": { - "saved": "Opgeslagen", - "refreshed": "Instellingen zijn vernieuwd vanaf server" - }, - "refresh_from_server": "Ververs Instellingen van Server" + "saved": "Opgeslagen" + } }, "streamystats": { - "enable_streamystats": "Streamystats inschakelen", "disable_streamystats": "Streamystats Uitschakelen", "enable_search": "Gebruik voor Zoeken", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Vul de URL van de Streamystats server in. De URL moet http of https bevatten en optioneel de poort.", "read_more_about_streamystats": "Lees Meer over Streamystats.", - "save_button": "Opslaan", "save": "Opslaan", "features_title": "Functies", - "home_sections_title": "Thuis Secties", "enable_movie_recommendations": "Film Aanbevelingen", "enable_series_recommendations": "Series Aanbevelingen", "enable_promoted_watchlists": "Gepromote Kijklijst", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Verwijder alle gedownloade bestanden", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} gecached", "music_cache_cleared": "Muziek cache gewist", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Systeem" }, "toasts": { - "error_deleting_files": "Fout bij het verwijderen van bestanden", - "background_downloads_enabled": "Downloads op de achtergrond ingeschakeld", - "background_downloads_disabled": "Downloads op de achtergrond uitgeschakeld" + "error_deleting_files": "Fout bij het verwijderen van bestanden" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Downloads", "series": "Series", "movies": "Films", - "queue": "Wachtrij", "other_media": "Andere media", - "queue_hint": "Wachtrij en downloads verdwijnen bij een herstart van de app", - "no_items_in_queue": "Geen items in wachtrij", "no_downloaded_items": "Geen gedownloade items", "delete_all_movies_button": "Verwijder alle films", "delete_all_series_button": "Verwijder alle Series", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Alle series zijn niet verwijderd", "deleted_media_successfully": "Andere media succesvol verwijderd!", "failed_to_delete_media": "Verwijderen van andere media mislukt", - "download_deleted": "Download verwijderd", "download_cancelled": "Download geannuleerd", "could_not_delete_download": "Kon download niet verwijderen", - "download_paused": "Download gepauzeerd", - "could_not_pause_download": "Kan niet pauzeren download", - "download_resumed": "Download hervat", - "could_not_resume_download": "Kon de download niet hervatten", "download_completed": "Download afgerond", "download_failed": "Download Mislukt", "download_failed_for_item": "Download gefaald voor {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} wordt al gedownload", "all_files_deleted": "Alle Bestanden Succesvol Gedownload", "files_deleted_by_type": "{{count}} {{type}} verwijderd", - "all_files_folders_and_jobs_deleted_successfully": "Alle bestanden, mappen en taken succesvol verwijderd", - "failed_to_clean_cache_directory": "Opschonen cachemap mislukt", "could_not_get_download_url_for_item": "Kan download-URL voor {{itemName}} niet ophalen", - "go_to_downloads": "Ga naar downloads", "file_deleted": "{{item}} verwijderd" } } @@ -583,16 +495,17 @@ "none": "Geen", "track": "Spoor", "cancel": "Annuleren", - "stop": "Stop", "delete": "Verwijderen", "ok": "Oké", "remove": "Verwijderen", - "next": "Volgende", "back": "Terug", "continue": "Doorgaan", "verifying": "Verifiëren...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Zoek...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Kon geen stream maken voor Chromecast", "message_from_server": "Bericht van de server", "next_episode": "Volgende Aflevering", - "refresh_tracks": "Tracks verversen", - "audio_tracks": "Audio Tracks:", - "playback_state": "Afspeelstatus:", - "index": "Index:", "continue_watching": "Verder kijken", "go_back": "Terug", "downloaded_file_title": "Je hebt dit bestand gedownload", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Toon meer", "show_less": "Toon minder", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Volgende ", @@ -888,13 +798,9 @@ "playlists": "Afspeellijsten", "tracks": "Nummers" }, - "filters": { - "all": "Alle" - }, "recently_added": "Recent toegevoegd", "recently_played": "Onlangs afgespeeld", "frequently_played": "Vaak afgespeeld", - "explore": "Ontdek", "top_tracks": "Top Tracks", "play": "Afspelen", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/no.json b/translations/no.json index 97307753..38fda84f 100644 --- a/translations/no.json +++ b/translations/no.json @@ -123,7 +123,7 @@ "title": "Switch User", "account": "Account", "switch_user": "Switch User on This Server", - "current": "current" + "current": "nåværende" }, "categories": { "title": "Categories" @@ -261,43 +261,6 @@ "None": "Ingen", "OnlyForced": "Enkelt" }, - "text_color": "Tekst farge", - "background_color": "Bakgrunnsfarge", - "outline_color": "Omrissets farge", - "outline_thickness": "Omriss Tykkelse", - "background_opacity": "Bakgrunns gjennomsiktighet", - "outline_opacity": "Omrissets gjennomsiktighet", - "bold_text": "Bold Text", - "colors": { - "Black": "Svart", - "Gray": "Grå", - "Silver": "Sølv", - "White": "Hvit", - "Maroon": "Rødbrun", - "Red": "Rød", - "Fuchsia": "Fuchsia", - "Yellow": "Gul", - "Olive": "Olivengrønn", - "Green": "Grønn", - "Teal": "Blågrønn", - "Lime": "Limegrønn", - "Purple": "Lilla", - "Navy": "Marineblå", - "Blue": "Blå", - "Aqua": "Vann" - }, - "thickness": { - "None": "Ingen", - "Thin": "Tynn", - "Normal": "Vanlig", - "Thick": "Tykk" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Annet", "video_orientation": "Video Retning", @@ -351,11 +295,6 @@ "UNKNOWN": "Ukjent" }, "safe_area_in_controls": "Sikker sone i kontroller", - "video_player": "Video Spiller", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (eksperimentell + PiP)" - }, "show_custom_menu_links": "Vis tilpassede menylenker", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "Skjul biblioteker", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Maks automatisk avspilling Episode Telling", "disabled": "Deaktivert" }, - "downloads": { - "downloads_title": "Nedlastinger" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Utvidelser", "jellyseerr": { - "jellyseerr_warning": "Denne integreringen er i tidlige faser. Forvent ting å forandre.", "server_url": "URL til server", "server_url_hint": "Eksempel: http(s)://your-host.url\n(legg til port hvis nødvendig)", "server_url_placeholder": "Seerr URL", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Les mer om Marlin.", "save_button": "Lagre", "toasts": { - "saved": "Lagret", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Lagret" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Slett alle nedlastede filer", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Systemadministrasjon" }, "toasts": { - "error_deleting_files": "Feil ved sletting av filer", - "background_downloads_enabled": "Nedlastinger av bakgrunn aktivert", - "background_downloads_disabled": "Bakgrunnsnedlastinger deaktivert" + "error_deleting_files": "Feil ved sletting av filer" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Nedlastinger", "series": "TV-Serier", "movies": "Filmer", - "queue": "Kø", "other_media": "Andre medier", - "queue_hint": "Kø og nedlastinger vil gå tapt når appen startes på nytt", - "no_items_in_queue": "Ingen elementer i køen", "no_downloaded_items": "Ingen nedlastede elementer", "delete_all_movies_button": "Slett alle filmer", "delete_all_series_button": "Slett alle TV-Serier", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Kunne ikke slette alle TV-Serier", "deleted_media_successfully": "Slettet andre media vellykket!", "failed_to_delete_media": "Kunne ikke slette andre medier", - "download_deleted": "Nedlasting slettet", "download_cancelled": "Download Cancelled", "could_not_delete_download": "Kunne ikke slette nedlasting", - "download_paused": "Last ned Pauset", - "could_not_pause_download": "Kunne ikke pause nedlasting", - "download_resumed": "Nedlastingen er gjenopptatt", - "could_not_resume_download": "Kunne ikke fortsette nedlasting", "download_completed": "Nedlasting fullført", "download_failed": "Download Failed", "download_failed_for_item": "Nedlasting feilet for {{item}} – {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "Alle filer, mapper og jobber slettet", - "failed_to_clean_cache_directory": "Klarte ikke å tømme mellomlagermappen", "could_not_get_download_url_for_item": "Kunne ikke hente nedlastings-URL for {{itemName}}", - "go_to_downloads": "Gå til nedlastinger", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Søk...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Kan ikke opprette en strøm for Chromecast", "message_from_server": "Melding fra tjener: {{message}}", "next_episode": "Neste Episode", - "refresh_tracks": "Oppdater sporing", - "audio_tracks": "Lyd Tracks:", - "playback_state": "Avspillingsstatus:", - "index": "Indeks:", "continue_watching": "Fortsett å se", "go_back": "Gå tilbake", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Vis mer", "show_less": "Vis mindre", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Neste", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/pl.json b/translations/pl.json index 0137fb69..1370e947 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -261,43 +261,6 @@ "None": "Brak", "OnlyForced": "Tylko wymuszone" }, - "text_color": "Kolor tekstu", - "background_color": "Kolor tła", - "outline_color": "Kolor konturu", - "outline_thickness": "Grubość konturu", - "background_opacity": "Przezroczystość tła", - "outline_opacity": "Przezroczystość konturu", - "bold_text": "Tekst pogrubiony", - "colors": { - "Black": "Czarny", - "Gray": "Szary", - "Silver": "Srebro", - "White": "Biały", - "Maroon": "Bordowy", - "Red": "Czerwony", - "Fuchsia": "Fuksja", - "Yellow": "Żółty", - "Olive": "Oliwki", - "Green": "Zielony", - "Teal": "Turkusowy", - "Lime": "Limonkowy", - "Purple": "Fioletowy", - "Navy": "Granatowy", - "Blue": "Niebieski", - "Aqua": "Aqua" - }, - "thickness": { - "None": "Brak", - "Thin": "Cienka", - "Normal": "Normalny", - "Thick": "Gruba" - }, - "subtitle_color": "Kolor napisów", - "subtitle_background_color": "Kolor tła", - "subtitle_font": "Czcionka napisów", - "ksplayer_title": "Ustawienia KSPlayer", - "hardware_decode": "Dekodowanie sprzętowe", - "hardware_decode_description": "Używaj akceleracji sprzętowej dla dekodowania wideo. Wyłącz, jeśli doświadczasz problemów z odtwarzaniem.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "Ustawienia napisów VLC", - "hint": "Personalizuj wygląd napisów dla odtwarzacza VLC. Zmiany zajdą przy następnym odtwarzaniu.", - "text_color": "Kolor tekstu", - "background_color": "Kolor tła", - "background_opacity": "Przezroczystość tła", - "outline_color": "Kolor obrysu", - "outline_opacity": "Przezroczystość obrysu", - "outline_thickness": "Grubość obrysu", - "bold": "Pogrubiony tekst", - "margin": "Dolny margines" - }, - "video_player": { - "title": "Odtwarzacz wideo", - "video_player": "Odtwarzacz wideo", - "video_player_description": "Wybierz którego odtwarzacza wideo używać w iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Inne", "video_orientation": "Orientacja wideo", @@ -351,11 +295,6 @@ "UNKNOWN": "Nieznana" }, "safe_area_in_controls": "Bezpieczny obszar w kontrolkach", - "video_player": "Odtwarzacz wideo", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Eksperymentalny + PiP)" - }, "show_custom_menu_links": "Pokaż niestandardowe odnośniki w menu", "show_large_home_carousel": "Wyświetl Dużą Karuzelę na ekranie głównym (beta)", "hide_libraries": "Ukryj biblioteki", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Maksymalna liczba odcinków automatycznego odtwarzania", "disabled": "Wyłączone" }, - "downloads": { - "downloads_title": "Pobieranie" - }, "music": { "title": "Muzyka", "playback_title": "Odtwarzanie", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Wtyczki", "jellyseerr": { - "jellyseerr_warning": "Ta integracja jest na wczesnym etapie. Należy oczekiwać zmian.", "server_url": "URL serwera", "server_url_hint": "Przykład: http(s)://twoja-nazwa.url\n(dodaj port, jeśli jest wymagany)", "server_url_placeholder": "Adres URL Seerr", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Dowiedz się więcej o Marlin.", "save_button": "Zapisz", "toasts": { - "saved": "Zapisano", - "refreshed": "Ustawienia odświeżone z serwera" - }, - "refresh_from_server": "Odśwież ustawienia z serwera" + "saved": "Zapisano" + } }, "streamystats": { - "enable_streamystats": "Włącz Streamystats", "disable_streamystats": "Wyłącz Streamystats", "enable_search": "Używaj do wyszukiwania", "url": "Adres URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Wprowadź adres URL dla twojego serwera Streamystats. URL powinien zawierać http lub https i opcjonalnie port.", "read_more_about_streamystats": "Dowiedz się więcej o Streamystats.", - "save_button": "Zapisz", "save": "Zapisz", "features_title": "Funkcje", - "home_sections_title": "Sekcja główna", "enable_movie_recommendations": "Rekomendacje filmów", "enable_series_recommendations": "Rekomendację seriali", "enable_promoted_watchlists": "Promowane listy oglądania", @@ -445,8 +375,7 @@ "refresh_from_server": "Odśwież ustawienia z serwera" }, "kefinTweaks": { - "watchlist_enabler": "Aktywuj naszą integrację Listy Oglądania", - "watchlist_button": "Przelącz integrację Listy Oglądania" + "watchlist_enabler": "Aktywuj naszą integrację Listy Oglądania" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Usuń wszystkie pobrane pliki", "music_cache_title": "Bufor muzyki", "music_cache_description": "Automatycznie buforuj piosenki w trakcie słuchania dla płynniejszego odtwarzania i wsparcia offline", - "enable_music_cache": "Włącz bufor muzyki", "clear_music_cache": "Wyczyść bufor muzyki", "music_cache_size": "Zbuforowano {{size}}", "music_cache_cleared": "Wyczyszczono bufor muzyki", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "System" }, "toasts": { - "error_deleting_files": "Błąd podczas usuwania plików", - "background_downloads_enabled": "Pobieranie w tle włączone", - "background_downloads_disabled": "Pobieranie w tle wyłączone" + "error_deleting_files": "Błąd podczas usuwania plików" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Pobrane", "series": "Seriale", "movies": "Filmy", - "queue": "Kolejka", "other_media": "Inne media", - "queue_hint": "Kolejka i pobierania zostaną utracone po ponownym uruchomieniu aplikacji", - "no_items_in_queue": "Brak elementów w kolejce", "no_downloaded_items": "Brak pobranych elementów", "delete_all_movies_button": "Usuń wszystkie filmy", "delete_all_series_button": "Usuń wszystkie seriale", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Nie udało się usunąć wszystkich seriali", "deleted_media_successfully": "Pomyślnie usunięto inne media!", "failed_to_delete_media": "Nie udało się usunąć innych mediów", - "download_deleted": "Pobieranie usunięte", "download_cancelled": "Pobieranie anulowane", "could_not_delete_download": "Nie można usunąć pobrania", - "download_paused": "Pobieranie wstrzymane", - "could_not_pause_download": "Nie można wstrzymać pobierania", - "download_resumed": "Pobieranie wznowione", - "could_not_resume_download": "Nie można wznowić pobierania", "download_completed": "Pobieranie zakończone", "download_failed": "Pobieranie nie powiodło się", "download_failed_for_item": "Pobieranie nie powiodło się dla {{item}} – {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} jest w trakcie pobierania", "all_files_deleted": "Pomyślnie usunięto wszystkie pobrane", "files_deleted_by_type": "{{count}} {{type}} usunięto", - "all_files_folders_and_jobs_deleted_successfully": "Wszystkie pliki, foldery i zadania zostały pomyślnie usunięte", - "failed_to_clean_cache_directory": "Nie udało się wyczyścić katalogu pamięci podręcznej", "could_not_get_download_url_for_item": "Nie można pobrać adresu URL dla {{itemName}}", - "go_to_downloads": "Przejdź do pobranych", "file_deleted": "Usunięto {{item}}" } } @@ -583,16 +495,17 @@ "none": "Nic", "track": "Utwór", "cancel": "Anuluj", - "stop": "Stop", "delete": "Usuń", "ok": "OK", "remove": "Usuń", - "next": "Następne", "back": "Poprzednie", "continue": "Kontynuuj", "verifying": "Weryfikacja...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Szukaj...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Nie udało się utworzyć strumienia dla Chromecasta", "message_from_server": "Wiadomość z serwera: {{message}}", "next_episode": "Następny odcinek", - "refresh_tracks": "Odśwież ścieżki", - "audio_tracks": "Ścieżki audio:", - "playback_state": "Stan odtwarzania:", - "index": "Indeks:", "continue_watching": "Kontynuuj oglądanie", "go_back": "Wstecz", "downloaded_file_title": "Ten plik masz już pobrany", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Pokaż więcej", "show_less": "Pokaż mniej", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Następny", @@ -888,13 +798,9 @@ "playlists": "Playlisty", "tracks": "utwory" }, - "filters": { - "all": "Wszystkie" - }, "recently_added": "Ostatnio dodano", "recently_played": "Ostatnio odtwarzano", "frequently_played": "Często odtwarzane", - "explore": "Odkrywaj", "top_tracks": "Popularne utwory", "play": "Odtwórz", "shuffle": "Losuj", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/pt.json b/translations/pt.json index a34fa1ff..f76876f4 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -261,43 +261,6 @@ "None": "Nenhuma", "OnlyForced": "Somente Forçado" }, - "text_color": "Cor do texto", - "background_color": "Cor de fundo", - "outline_color": "Cor do contorno", - "outline_thickness": "Espessura do Contorno", - "background_opacity": "Opacidade de fundo", - "outline_opacity": "Opacidade do Contorno", - "bold_text": "Texto em negrito", - "colors": { - "Black": "Preto", - "Gray": "Cinzento", - "Silver": "Prata", - "White": "Branco", - "Maroon": "Castanho", - "Red": "Vermelho", - "Fuchsia": "Fuchsia", - "Yellow": "Amarelo", - "Olive": "Verde-oliva", - "Green": "Verde", - "Teal": "Verde-azulado", - "Lime": "Verde-limão", - "Purple": "Roxo", - "Navy": "Azul-marinho", - "Blue": "Azul", - "Aqua": "Água" - }, - "thickness": { - "None": "Nenhuma", - "Thin": "Magro", - "Normal": "Normal", - "Thick": "Grosso" - }, - "subtitle_color": "Cor da legenda", - "subtitle_background_color": "Cor de fundo", - "subtitle_font": "Fonte da legenda", - "ksplayer_title": "Configurações do KSPlayer", - "hardware_decode": "Decodificação por hardware", - "hardware_decode_description": "Use aceleração de hardware para decodificação de vídeo. Desative se você tiver problemas de reprodução.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Reprodutor de Vídeo", - "video_player": "Reprodutor de Vídeo", - "video_player_description": "Escolha qual player de vídeo usar no iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Outros", "video_orientation": "Orientação do Vídeo", @@ -351,11 +295,6 @@ "UNKNOWN": "Desconhecido" }, "safe_area_in_controls": "Área segura nos controles", - "video_player": "Reprodutor de Vídeo", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimental + PiP)" - }, "show_custom_menu_links": "Mostrar Links de Menu Personalizado", "show_large_home_carousel": "Mostrar Carrossel Grande (beta)", "hide_libraries": "Ocultar bibliotecas", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Contagem máxima de episódios de reprodução automática", "disabled": "Desabilitado" }, - "downloads": { - "downloads_title": "Downloads" - }, "music": { "title": "Música", "playback_title": "Reproduzir", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Complementos", "jellyseerr": { - "jellyseerr_warning": "Essa integração está em suas fases iniciais. Espere que as coisas mudem.", "server_url": "URL do servidor", "server_url_hint": "Exemplo: http(s)://seu-host.url\n(adicionar porta se necessário)", "server_url_placeholder": "URL do Seerr", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Leia mais sobre Marlin.", "save_button": "Salvar", "toasts": { - "saved": "Salvo", - "refreshed": "Configurações atualizadas do servidor" - }, - "refresh_from_server": "Atualizar as configurações do servidor" + "saved": "Salvo" + } }, "streamystats": { - "enable_streamystats": "Ativar Streamystats", "disable_streamystats": "Desativar streamystats", "enable_search": "Usar para Pesquisa", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Digite a URL para seu servidor de StreamyStats. A URL deve incluir http ou https e, opcionalmente, a porta.", "read_more_about_streamystats": "Leia mais sobre Streamystats.", - "save_button": "Salvar", "save": "Salvar", "features_title": "Funcionalidades", - "home_sections_title": "Seções da Página Inicial", "enable_movie_recommendations": "Recomendações de filmes", "enable_series_recommendations": "Recomendações de Séries", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Atualizar Configurações do Servidor" }, "kefinTweaks": { - "watchlist_enabler": "Ative nossa integração de Lista de Interesses", - "watchlist_button": "Ativar/desativar Lista de Interesses" + "watchlist_enabler": "Ative nossa integração de Lista de Interesses" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Excluir todos os arquivos baixados", "music_cache_title": "Cache de Música", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Habilitar Cache de Música", "clear_music_cache": "Limpar Cache de Música", "music_cache_size": "{{size}} em cache", "music_cache_cleared": "Cache de música limpo", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Sistema" }, "toasts": { - "error_deleting_files": "Erro ao excluir arquivos", - "background_downloads_enabled": "Downloads em segundo plano ativados", - "background_downloads_disabled": "Downloads em segundo plano desativados" + "error_deleting_files": "Erro ao excluir arquivos" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Downloads", "series": "TV-Séries", "movies": "Filmes", - "queue": "Fila", "other_media": "Outras mídias", - "queue_hint": "A fila e os downloads serão perdidos ao reiniciar o aplicativo", - "no_items_in_queue": "Nenhum item na fila", "no_downloaded_items": "Nenhum item baixado", "delete_all_movies_button": "Excluir todos os filmes", "delete_all_series_button": "Excluir todas as séries", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Falha ao excluir todas as séries", "deleted_media_successfully": "Outras mídias excluídas com sucesso!", "failed_to_delete_media": "Falha ao excluir outras mídias", - "download_deleted": "Download Excluído", "download_cancelled": "Download Cancelado", "could_not_delete_download": "Não foi possível excluir o download", - "download_paused": "Download Pausado", - "could_not_pause_download": "Não foi possível Pausar o Download", - "download_resumed": "Download Retomado", - "could_not_resume_download": "Não foi possível retomar o download", "download_completed": "Download concluído", "download_failed": "Download Falhou", "download_failed_for_item": "Download Falhou para {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} já está sendo baixado", "all_files_deleted": "Todos os Downloads Excluídos com Sucesso", "files_deleted_by_type": "{{count}} {{type}} excluído", - "all_files_folders_and_jobs_deleted_successfully": "Todos os arquivos, pastas e trabalhos excluídos com sucesso", - "failed_to_clean_cache_directory": "Falha ao limpar o diretório de cache", "could_not_get_download_url_for_item": "Não foi possível obter o URL de download para {{itemName}}", - "go_to_downloads": "Ir para Downloads", "file_deleted": "{{item}} deletado" } } @@ -583,16 +495,17 @@ "none": "Nenhum", "track": "Faixa", "cancel": "Cancelar", - "stop": "Stop", "delete": "Apagar", "ok": "OK", "remove": "Remover", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Buscar...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Não foi possível criar um fluxo para o Chromecast", "message_from_server": "Mensagem do Servidor: {{message}}", "next_episode": "Próximo Episódio", - "refresh_tracks": "Atualizar Faixas", - "audio_tracks": "Faixas de Áudio:", - "playback_state": "Estado de Reprodução:", - "index": "Índice", "continue_watching": "Continuar assistindo", "go_back": "Voltar atrás", "downloaded_file_title": "Você já fez o download deste arquivo", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Mostrar mais", "show_less": "Mostrar menos", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Próximo", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "faixas" }, - "filters": { - "all": "Tudo" - }, "recently_added": "Adicionado recentemente", "recently_played": "Reproduzido Recentemente", "frequently_played": "Reproduzidos com frequência", - "explore": "Explorar", "top_tracks": "Músicas populares", "play": "Reproduzir", "shuffle": "Alteatório", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/ro.json b/translations/ro.json index 0724f212..7ca56a27 100644 --- a/translations/ro.json +++ b/translations/ro.json @@ -261,43 +261,6 @@ "None": "Niciuna", "OnlyForced": "OnlyForced" }, - "text_color": "Culoare text", - "background_color": "Culoare fundal", - "outline_color": "Culoare contur", - "outline_thickness": "Grosime contur", - "background_opacity": "Opacitatea fundalului", - "outline_opacity": "Opacitatea conturului", - "bold_text": "Bold Text", - "colors": { - "Black": "Negru", - "Gray": "Gri", - "Silver": "Argint", - "White": "Alb", - "Maroon": "Maro", - "Red": "Roșu", - "Fuchsia": "Fuchsia", - "Yellow": "Galben", - "Olive": "Oliv", - "Green": "Verde", - "Teal": "Turcoaz", - "Lime": "Verde-Deschis", - "Purple": "Violet", - "Navy": "Marină", - "Blue": "Albastru", - "Aqua": "Aqua" - }, - "thickness": { - "None": "Nimic", - "Thin": "Subțire", - "Normal": "Normală", - "Thick": "Grozav" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Altele", "video_orientation": "Orientarea video", @@ -351,11 +295,6 @@ "UNKNOWN": "Necunoscut" }, "safe_area_in_controls": "Zona sigură pentru controale", - "video_player": "Player video", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimental + PiP)" - }, "show_custom_menu_links": "Afișează link-uri personalizate în meniu", "show_large_home_carousel": "Arată Caruselul Media Mare (beta)", "hide_libraries": "Ascunde bibliotecile", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Maxim episoade redare automată", "disabled": "Dezactivat" }, - "downloads": { - "downloads_title": "Descărcări" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Plugin-uri", "jellyseerr": { - "jellyseerr_warning": "Această integrare este în stadii incipiente. Așteptați-vă ca lucrurile să se schimbe.", "server_url": "URL Server", "server_url_hint": "Exemplu: http(s)://your-host.url\n(adăugați portul dacă este necesar)", "server_url_placeholder": "Jellyseerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Citește mai multe despre Marlin.", "save_button": "Salvează", "toasts": { - "saved": "Salvat", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Salvat" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Ștergeți toate fișierele descărcate", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Sistem" }, "toasts": { - "error_deleting_files": "Eroare la ștergerea fișierelor", - "background_downloads_enabled": "Descărcări în fundal activate", - "background_downloads_disabled": "Descărcări în fundal dezactivate" + "error_deleting_files": "Eroare la ștergerea fișierelor" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Descărcări", "series": "Seriale", "movies": "Filme", - "queue": "Coadă", "other_media": "Alte suporturi", - "queue_hint": "Descărcările se vor pierde la repornirea aplicației", - "no_items_in_queue": "Niciun articol în coadă", "no_downloaded_items": "Niciun element descărcat", "delete_all_movies_button": "Șterge toate filmele", "delete_all_series_button": "Șterge toate serialele", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Nu s-au putut șterge toate serialele", "deleted_media_successfully": "Alte fișiere șterse cu succes!", "failed_to_delete_media": "Ștergerea altor fișiere media a eșuat", - "download_deleted": "Descărcare ştearsă", "download_cancelled": "Descărcare anulată", "could_not_delete_download": "Nu s-a putut șterge descărcarea", - "download_paused": "Descărcare întreruptă", - "could_not_pause_download": "Nu s-a putut întrerupe descărcarea", - "download_resumed": "Descărcare din nou", - "could_not_resume_download": "Nu s-a putut relua descărcarea", "download_completed": "Descărcare completă", "download_failed": "Descărcare eșuată", "download_failed_for_item": "Descărcarea a eșuat {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} se descarcă deja", "all_files_deleted": "Toate descărcările au fost șterse cu succes", "files_deleted_by_type": "{{count}} {{type}} au fost șterse", - "all_files_folders_and_jobs_deleted_successfully": "Toate fișierele, folderele și lucrările au fost șterse cu succes", - "failed_to_clean_cache_directory": "Curățarea directorului cache a eșuat", "could_not_get_download_url_for_item": "Nu s-a putut obține URL-ul de descărcare pentru {{itemName}}", - "go_to_downloads": "Accesați descărcările", "file_deleted": "{{item}} șters" } } @@ -583,16 +495,17 @@ "none": "Nimic", "track": "Limbă audio", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Caută...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Nu s-a putut crea un flux pentru Chromecast", "message_from_server": "Mesaj de la server: {{message}}", "next_episode": "Episodul următor", - "refresh_tracks": "Reîmprospătare piese", - "audio_tracks": "Audio:", - "playback_state": "Stare de redare:", - "index": "Indice:", "continue_watching": "Continuă să vizionezi", "go_back": "Înapoi", "downloaded_file_title": "Aveţi acest fişier descărcat", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Arată mai mult", "show_less": "Arată mai puțin", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Următorul", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/ru.json b/translations/ru.json index 1626f743..3f7e1bec 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -261,43 +261,6 @@ "None": "Отсутствует", "OnlyForced": "Только принудительные" }, - "text_color": "Цвет текста", - "background_color": "Цвет фона", - "outline_color": "Цвет контура", - "outline_thickness": "Толщина контура", - "background_opacity": "Прозрачность фона", - "outline_opacity": "Прозрачность контура", - "bold_text": "Жирный", - "colors": { - "Black": "Черный", - "Gray": "Серый", - "Silver": "Серебристый", - "White": "Белый", - "Maroon": "Бордовый", - "Red": "Красный", - "Fuchsia": "Пурпурный", - "Yellow": "Жёлтый", - "Olive": "Оливковый", - "Green": "Зелёный", - "Teal": "Бирюзовый", - "Lime": "Лаймовый", - "Purple": "Фиолетовый", - "Navy": "Тёмно-синий", - "Blue": "Синий", - "Aqua": "Голубой" - }, - "thickness": { - "None": "Отсутствует", - "Thin": "Тонкий", - "Normal": "Обычный", - "Thick": "Толстый" - }, - "subtitle_color": "Цвет субтитров", - "subtitle_background_color": "Цвет фона", - "subtitle_font": "Шрифт субтитров", - "ksplayer_title": "Настройки KSPlayer", - "hardware_decode": "Аппаратное декодирование", - "hardware_decode_description": "Использовать аппаратное ускорение для декодирования видео. Выключите, если наблюдаете проблемы с воспроизведением.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "Настройки субтитров в VLC", - "hint": "Настройте внешний вид субтитров в VLC плеере. Изменения применятся при следующем воспроизведении.", - "text_color": "Цвет текста", - "background_color": "Цвет фона", - "background_opacity": "Прозрачность фона", - "outline_color": "Цвет контура", - "outline_opacity": "Прозрачность контура", - "outline_thickness": "Толщина контура", - "bold": "Жирный", - "margin": "Отступ снизу" - }, - "video_player": { - "title": "Видео плеер", - "video_player": "Видео плеер", - "video_player_description": "Выберите видео плеер в iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Другое", "video_orientation": "Ориентация видео", @@ -351,11 +295,6 @@ "UNKNOWN": "Неизвестное" }, "safe_area_in_controls": "Безопасная зона в элементах управления", - "video_player": "Видео плеер", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Экспериментальный + PiP)" - }, "show_custom_menu_links": "Показать ссылки пользовательского меню", "show_large_home_carousel": "Показывать большую карусель (beta)", "hide_libraries": "Скрыть библиотеки", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Максимальное количество авто воспроизводимых эпизодов", "disabled": "Отключено" }, - "downloads": { - "downloads_title": "Загрузки" - }, "music": { "title": "Музыка", "playback_title": "Воспроизведение", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Плагины", "jellyseerr": { - "jellyseerr_warning": "Эта интеграция находится на ранней стадии. Ожидайте изменений.", "server_url": "URL сервера", "server_url_hint": "Пример: http(s)://your-host.url\n(добавьте порт если необходимо)", "server_url_placeholder": "Seerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Узнать больше о Marlin.", "save_button": "Сохранить", "toasts": { - "saved": "Сохранено", - "refreshed": "Настройки обновлены с сервера" - }, - "refresh_from_server": "Обновить настройки с сервера" + "saved": "Сохранено" + } }, "streamystats": { - "enable_streamystats": "Включить Streamystats", "disable_streamystats": "Выключить Streamystats", "enable_search": "Использовать в поиске", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Введите URL вашего сервера Streamystats. URL должен включать http/https и порт при необходимости.", "read_more_about_streamystats": "Узнать больше про Streamystats.", - "save_button": "Сохранить", "save": "Сохранить", "features_title": "Функции", - "home_sections_title": "Показывать на главной", "enable_movie_recommendations": "Рекомендации фильмов", "enable_series_recommendations": "Рекомендации сериалов", "enable_promoted_watchlists": "Продвигаемые списки просмотра", @@ -445,8 +375,7 @@ "refresh_from_server": "Обновить настройки с сервера" }, "kefinTweaks": { - "watchlist_enabler": "Включить интеграцию со списками просмотра", - "watchlist_button": "Изменить интеграцию со списками просмотра" + "watchlist_enabler": "Включить интеграцию со списками просмотра" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Удалить все загруженные файлы", "music_cache_title": "Кеш музыки", "music_cache_description": "Автоматически кешировать песни по мере прослушивания для плавного воспроизведения и поддержки отсутствия интернета", - "enable_music_cache": "Кешировать музыку", "clear_music_cache": "Очистить кеш музыки", "music_cache_size": "Кешировано: {{size}}", "music_cache_cleared": "Кеш музыки очищен", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Системный" }, "toasts": { - "error_deleting_files": "Ошибка при удалении файлов", - "background_downloads_enabled": "Фоновая загрузка включена", - "background_downloads_disabled": "Фоновая загрузка отключена" + "error_deleting_files": "Ошибка при удалении файлов" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Загрузки", "series": "Сериалы", "movies": "Фильмы", - "queue": "Очередь", "other_media": "Прочие файлы", - "queue_hint": "Очередь очистится после перезапуска", - "no_items_in_queue": "Нет элементов в очереди", "no_downloaded_items": "Нет загруженных файлов", "delete_all_movies_button": "Удалить все фильмы", "delete_all_series_button": "Удалить все сериалы", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Возникла ошибка при удалении всех сериалов", "deleted_media_successfully": "Остальные медиафайлы успешно удалены!", "failed_to_delete_media": "Не удалось удалить остальные медиафайлы", - "download_deleted": "Загруженный контент удалён", "download_cancelled": "Загрузка отменена", "could_not_delete_download": "Не удалось удалить загрузку", - "download_paused": "На паузе", - "could_not_pause_download": "Не удалось приостановить загрузку", - "download_resumed": "Продолжено", - "could_not_resume_download": "Не удалось возобновить загрузку", "download_completed": "Завершено", "download_failed": "Не удалось загрузить", "download_failed_for_item": "Загрузка {{item}} провалилась с ошибкой: {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} уже загружается", "all_files_deleted": "Все загрузки удалены", "files_deleted_by_type": "Удалено: {{count}} {{type}}", - "all_files_folders_and_jobs_deleted_successfully": "Все файлы, папки, и задачи были успешно удалены", - "failed_to_clean_cache_directory": "Не удалось очистить директорию кэша", "could_not_get_download_url_for_item": "Не удалось получить URL для загрузки {{itemName}}", - "go_to_downloads": "В загрузки", "file_deleted": "Удалено: {{item}}" } } @@ -583,16 +495,17 @@ "none": "Отсутствует", "track": "Трек", "cancel": "Отмена", - "stop": "Stop", "delete": "Удалить", "ok": "ОК", "remove": "Удалить", - "next": "Вперед", "back": "Назад", "continue": "Продолжить", "verifying": "Проверка...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Поиск...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Не удалось создать поток для Chromecast", "message_from_server": "Сообщение от сервера: {{message}}", "next_episode": "Следующая серия", - "refresh_tracks": "Обновить дорожки", - "audio_tracks": "Аудио дорожки:", - "playback_state": "Состояние воспроизведения:", - "index": "Индекс:", "continue_watching": "Продолжить просмотр", "go_back": "Назад", "downloaded_file_title": "Этот файл уже скачан", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Показать больше", "show_less": "Показать меньше", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Далее", @@ -888,13 +798,9 @@ "playlists": "Плейлисты", "tracks": "треки" }, - "filters": { - "all": "Все" - }, "recently_added": "Недавно добавлено", "recently_played": "Недавно воспроизведено", "frequently_played": "Часто играет", - "explore": "Найти новое", "top_tracks": "Топ", "play": "Воспроизвести", "shuffle": "Перемешать", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/sv.json b/translations/sv.json index 37715e89..b36c4dc0 100644 --- a/translations/sv.json +++ b/translations/sv.json @@ -261,43 +261,6 @@ "None": "Inga", "OnlyForced": "Bara Tvingande" }, - "text_color": "Textfärg", - "background_color": "Bakgrundsfärg", - "outline_color": "Konturfärg", - "outline_thickness": "Konturtjocklek", - "background_opacity": "Bakgrundsgenomskinlighet", - "outline_opacity": "Kontursgenomskinlighet", - "bold_text": "FetStil", - "colors": { - "Black": "Svart", - "Gray": "Grå", - "Silver": "Silver", - "White": "Vit", - "Maroon": "Rödbrun", - "Red": "Röd", - "Fuchsia": "Purpur", - "Yellow": "Gul", - "Olive": "Olivgrön", - "Green": "Grön", - "Teal": "Turkos", - "Lime": "Limegrön", - "Purple": "Lila", - "Navy": "Marinblå", - "Blue": "Blå", - "Aqua": "Aqua" - }, - "thickness": { - "None": "Inget", - "Thin": "Tunn", - "Normal": "Normal", - "Thick": "Tjock" - }, - "subtitle_color": "Undertextfärg", - "subtitle_background_color": "Bakgrundsfärg", - "subtitle_font": "Typsnitt för undertexter", - "ksplayer_title": "KSPlayer-inställningar", - "hardware_decode": "Hårdvaruavkodning", - "hardware_decode_description": "Använd hårdvaruacceleration för videoavkodning. Inaktivera om du upplever uppspelningsproblem.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Ange din OpenSubtitles API-nyckel för att aktivera klientbaserad undertextsökning som reserv när din Jellyfin-server inte har en undertextleverantör konfigurerad.", "opensubtitles_api_key": "API-nyckel", @@ -315,25 +278,6 @@ "bottom": "Botten" } }, - "vlc_subtitles": { - "title": "VLC undertextsinställningar", - "hint": "Anpassa undertextens utseende för VLC-spelare. Förändringar träder i kraft vid nästa uppspelning.", - "text_color": "Textfärg", - "background_color": "Bakgrundsfärg", - "background_opacity": "Bakgrundsgenomskinlighet", - "outline_color": "Konturfärg", - "outline_opacity": "Kontursgenomskinlighet", - "outline_thickness": "Konturtjocklek", - "bold": "FetStil", - "margin": "Nedre marginal" - }, - "video_player": { - "title": "Videospelare", - "video_player": "Videospelare", - "video_player_description": "Välj vilken videospelare som ska användas på iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Övrigt", "video_orientation": "Videoriktning", @@ -351,11 +295,6 @@ "UNKNOWN": "Okänt" }, "safe_area_in_controls": "Säkert område i kontrollerna", - "video_player": "Videospelare", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimentell + PiP)" - }, "show_custom_menu_links": "Visa anpassade menylänkar", "show_large_home_carousel": "Visa toppbanner (beta)", "hide_libraries": "Dölj bibliotek", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Antal Avsnitt för Automatisk Uppspelning", "disabled": "Inaktiverad" }, - "downloads": { - "downloads_title": "Nedladdningar" - }, "music": { "title": "Musik", "playback_title": "Uppspelning", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Tillägg", "jellyseerr": { - "jellyseerr_warning": "Denna integration är i ett tidigt skede. Räkna med att saker och ting förändras.", "server_url": "Serveradress", "server_url_hint": "Exempel: http(s)://your-host.url\n(lägg till port vid behov)", "server_url_placeholder": "Seerr URL", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Läs mer om Marlin.", "save_button": "Spara", "toasts": { - "saved": "Sparade", - "refreshed": "Inställningarna uppdateras från servern" - }, - "refresh_from_server": "Uppdatera inställningar från server" + "saved": "Sparade" + } }, "streamystats": { - "enable_streamystats": "Aktivera Streamystats", "disable_streamystats": "Inaktivera Streamystats", "enable_search": "Använd för sökning", "url": "Webbadress", "server_url_placeholder": "http(s)://streamystats.exempel.se", "streamystats_search_hint": "Ange URL för Marlin-servern. URL bör innehålla http eller https och vid behov port.", "read_more_about_streamystats": "Läs mer om Streamystats.", - "save_button": "Spara", "save": "Spara", "features_title": "Funktioner", - "home_sections_title": "Hemsektioner", "enable_movie_recommendations": "Filmrekommendationer", "enable_series_recommendations": "serierekommendationer", "enable_promoted_watchlists": "rekommenderade listor att titta på", @@ -445,8 +375,7 @@ "refresh_from_server": "Uppdatera inställningar från server" }, "kefinTweaks": { - "watchlist_enabler": "Aktivera vår bevakningslista integration", - "watchlist_button": "sätt på/av bevakningslisteintegrationen" + "watchlist_enabler": "Aktivera vår bevakningslista integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Ta bort alla nerladdade filer", "music_cache_title": "Musikcache", "music_cache_description": "Cacha automatiskt låtar när du lyssnar för smidigare uppspelning och offline-stöd", - "enable_music_cache": "Aktivera musikcache", "clear_music_cache": "Rensa musikcache", "music_cache_size": "{{size}} cachad", "music_cache_cleared": "Musikcache rensad", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "System" }, "toasts": { - "error_deleting_files": "Fel Vid Borttagning Av Filer", - "background_downloads_enabled": "Bakgrundsnedladdningar aktiverade", - "background_downloads_disabled": "Bakgrundsnedladdningar inaktiverade" + "error_deleting_files": "Fel Vid Borttagning Av Filer" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Nedladdningar", "series": "TV-Serier", "movies": "Filmer", - "queue": "Kö", "other_media": "Annan media", - "queue_hint": "Kö och nedladdningar kommer försvinna vid omstart av appen", - "no_items_in_queue": "Inga objekt i Kön", "no_downloaded_items": "Inga Nedladdade Objekt", "delete_all_movies_button": "Ta Bort Alla Filmer", "delete_all_series_button": "Ta Bort Alla TV-Serier", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Det Gick Inte Att Ta Bort Alla TV-Serier", "deleted_media_successfully": "Andra Medier Har Tagits Bort!", "failed_to_delete_media": "Kunde Inte Ta Bort Andra Medier", - "download_deleted": "Nedladdning Borttagen", "download_cancelled": "Nerladdningen Avbruten", "could_not_delete_download": "Kunde Inte Ta Bort Nedladdning", - "download_paused": "Nedladdning Pausad", - "could_not_pause_download": "Kunde Inte Pausa Nedladdning", - "download_resumed": "Nedladdning Återupptagen", - "could_not_resume_download": "Kunde Inte Återuppta Nedladdning", "download_completed": "Nedladdning Slutförd", "download_failed": "Nerladdningen misslyckades", "download_failed_for_item": "Nedladdning misslyckades för {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} Laddas redan ner", "all_files_deleted": "Alla nedladdningar raderades", "files_deleted_by_type": "{{count}} {{type}} Raderad", - "all_files_folders_and_jobs_deleted_successfully": "Alla filer, mappar och jobb har tagits bort", - "failed_to_clean_cache_directory": "Det gick inte att rensa cachemappen", "could_not_get_download_url_for_item": "Kunde inte hämta nedladdnings-URL för {{itemName}}", - "go_to_downloads": "Gå till nedladdningar", "file_deleted": "{{item}} Raderad" } } @@ -583,16 +495,17 @@ "none": "Ingen", "track": "Spår", "cancel": "Avbryt", - "stop": "Stoppa", "delete": "Ta bort", "ok": "OK", "remove": "Radera", - "next": "Nästa", "back": "Tillbaka", "continue": "Fortsätt", "verifying": "Verifierar...", "login": "Logga in", - "refresh": "Uppdatera" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Sök...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Kunde inte skapa stream för Chromecast", "message_from_server": "Meddelande från servern: {{message}}", "next_episode": "Nästa avsnitt", - "refresh_tracks": "Uppdatera spår", - "audio_tracks": "Ljudspår:", - "playback_state": "Uppspelningsstatus:", - "index": "Index:", "continue_watching": "Fortsätt titta", "go_back": "Tillbaka", "downloaded_file_title": "Du har denna fil nedladdad", @@ -723,7 +632,8 @@ "stopPlayback": "Stoppa uppspelning", "stopPlayingTitle": "Sluta spela \"{{title}}\"?", "stopPlayingConfirm": "Är du säker på att du vill stoppa uppspelningen?", - "downloaded": "Nedladdad" + "downloaded": "Nedladdad", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Visa Mer", "show_less": "Visa Mindre", "left": "kvar", - "more_info": "Mer info", "director": "Regissör", "cast": "Skådespelare", "technical_details": "Tekniska detaljer", @@ -784,7 +693,8 @@ "resume_playback": "Återuppta uppspelning", "resume_playback_description": "Vill du fortsätta där du slutade eller börja om från början?", "play_from_start": "Spela från början", - "continue_from": "Fortsätt från {{time}}" + "continue_from": "Fortsätt från {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Nästa", @@ -888,13 +798,9 @@ "playlists": "Spellistor", "tracks": "spår" }, - "filters": { - "all": "Alla" - }, "recently_added": "Nyligen tillagt", "recently_played": "Nyligen spelat", "frequently_played": "Spelas ofta", - "explore": "Utforska", "top_tracks": "Toppspår", "play": "Spela", "shuffle": "Blanda spår", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/th.json b/translations/th.json index e24fd3f9..4feea2b8 100644 --- a/translations/th.json +++ b/translations/th.json @@ -261,43 +261,6 @@ "None": "None", "OnlyForced": "OnlyForced" }, - "text_color": "Text Color", - "background_color": "Background Color", - "outline_color": "Outline Color", - "outline_thickness": "Outline Thickness", - "background_opacity": "Background Opacity", - "outline_opacity": "Outline Opacity", - "bold_text": "Bold Text", - "colors": { - "Black": "Black", - "Gray": "Gray", - "Silver": "Silver", - "White": "White", - "Maroon": "Maroon", - "Red": "Red", - "Fuchsia": "Fuchsia", - "Yellow": "Yellow", - "Olive": "Olive", - "Green": "Green", - "Teal": "Teal", - "Lime": "Lime", - "Purple": "Purple", - "Navy": "Navy", - "Blue": "สีน้ำเงิน", - "Aqua": "Aqua" - }, - "thickness": { - "None": "None", - "Thin": "Thin", - "Normal": "Normal", - "Thick": "Thick" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Other", "video_orientation": "Video Orientation", @@ -346,16 +290,11 @@ "PORTRAIT_DOWN": "Portrait Down", "LANDSCAPE": "Landscape", "LANDSCAPE_LEFT": "Landscape Left", - "LANDSCAPE_RIGHT": "", + "LANDSCAPE_RIGHT": "Landscape right", "OTHER": "Other", "UNKNOWN": "Unknown" }, "safe_area_in_controls": "Safe Area in Controls", - "video_player": "Video Player", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimental + PiP)" - }, "show_custom_menu_links": "Show Custom Menu Links", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "Hide Libraries", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Max Auto Play Episode Count", "disabled": "Disabled" }, - "downloads": { - "downloads_title": "Downloads" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Plugins", "jellyseerr": { - "jellyseerr_warning": "This integration is in its early stages. Expect things to change.", "server_url": "Server URL", "server_url_hint": "Example: http(s)://your-host.url\n(add port if required)", "server_url_placeholder": "Seerr URL", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Read More About Marlin.", "save_button": "Save", "toasts": { - "saved": "Saved", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Saved" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Delete All Downloaded Files", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "System" }, "toasts": { - "error_deleting_files": "Error Deleting Files", - "background_downloads_enabled": "Background downloads enabled", - "background_downloads_disabled": "Background downloads disabled" + "error_deleting_files": "Error Deleting Files" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Downloads", "series": "TV-Series", "movies": "Movies", - "queue": "Queue", "other_media": "Other media", - "queue_hint": "Queue and downloads will be lost on app restart", - "no_items_in_queue": "No Items in Queue", "no_downloaded_items": "No Downloaded Items", "delete_all_movies_button": "Delete All Movies", "delete_all_series_button": "Delete All TV-Series", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Failed to Delete All TV-Series", "deleted_media_successfully": "Deleted other media Successfully!", "failed_to_delete_media": "Failed to Delete other media", - "download_deleted": "Download Deleted", "download_cancelled": "Download Cancelled", "could_not_delete_download": "Could Not Delete Download", - "download_paused": "Download Paused", - "could_not_pause_download": "Could Not Pause Download", - "download_resumed": "Download Resumed", - "could_not_resume_download": "Could Not Resume Download", "download_completed": "Download Completed", "download_failed": "Download Failed", "download_failed_for_item": "Download failed for {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "All files, folders, and jobs deleted successfully", - "failed_to_clean_cache_directory": "Failed to clean cache directory", "could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}", - "go_to_downloads": "Go to Downloads", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Search...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast", "message_from_server": "Message from Server: {{message}}", "next_episode": "Next Episode", - "refresh_tracks": "Refresh Tracks", - "audio_tracks": "Audio Tracks:", - "playback_state": "Playback State:", - "index": "Index:", "continue_watching": "Continue Watching", "go_back": "Go Back", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Show More", "show_less": "Show Less", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Next", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/tlh.json b/translations/tlh.json index feb06c0b..b99e701a 100644 --- a/translations/tlh.json +++ b/translations/tlh.json @@ -261,43 +261,6 @@ "None": "pagh", "OnlyForced": "Dun je'" }, - "text_color": "GhItlh rIt", - "background_color": "Tlhagh rIt", - "outline_color": "Outline Color", - "outline_thickness": "Outline Thickness", - "background_opacity": "Background Opacity", - "outline_opacity": "Outline Opacity", - "bold_text": "Bold Text", - "colors": { - "Black": "Black", - "Gray": "Gray", - "Silver": "Silver", - "White": "White", - "Maroon": "Maroon", - "Red": "Red", - "Fuchsia": "Fuchsia", - "Yellow": "Yellow", - "Olive": "Olive", - "Green": "Green", - "Teal": "Teal", - "Lime": "Lime", - "Purple": "Purple", - "Navy": "Navy", - "Blue": "Blue", - "Aqua": "Aqua" - }, - "thickness": { - "None": "pagh", - "Thin": "Thin", - "Normal": "Normal", - "Thick": "Thick" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "patlh", "video_orientation": "mu'tlhegh pegh", @@ -351,11 +295,6 @@ "UNKNOWN": "Sovbe'" }, "safe_area_in_controls": "SeHlawDaq yot QIH", - "video_player": "mu'tlhegh tlholwI'", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (PiP mIwHa')" - }, "show_custom_menu_links": "menuDaq ret teqlu' yInej", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "De'wI' bom yIQIj", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Max Auto Play Episode Count", "disabled": "Disabled" }, - "downloads": { - "downloads_title": "Qaw' Doch" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "mIwHom", "jellyseerr": { - "jellyseerr_warning": "mIwHomvam chu'. ghoSlaH.", "server_url": "Ho'Do' veS URL", "server_url_hint": "ghu': http(s)://HoDo-veS.url\n(pord yIbel)", "server_url_placeholder": "Jellyseerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Marlin latlh yIlaD", "save_button": "yIqIp", "toasts": { - "saved": "qIp", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "qIp" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Hoch Qaw' Doch yIQaw'", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "mIw'a'" }, "toasts": { - "error_deleting_files": "Qaw' ghIq", - "background_downloads_enabled": "tlhegh Qaw' chu'", - "background_downloads_disabled": "tlhegh Qaw' QIj" + "error_deleting_files": "Qaw' ghIq" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Qaw' Doch", "series": "TV Hem", "movies": "DIS", - "queue": "ghom", "other_media": "Other media", - "queue_hint": "ghun ghImDI' ghom Qaw'laH.", - "no_items_in_queue": "ghom Doch pagh", "no_downloaded_items": "Qaw' Doch pagh", "delete_all_movies_button": "Hoch DIS yIQaw'", "delete_all_series_button": "Hoch TV Hem yIQaw'", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Hoch TV Hem Qaw'laHbe'", "deleted_media_successfully": "Deleted other media Successfully!", "failed_to_delete_media": "Failed to Delete other media", - "download_deleted": "Download Deleted", "download_cancelled": "Qaw' ghIm", "could_not_delete_download": "Could Not Delete Download", - "download_paused": "Download Paused", - "could_not_pause_download": "Could Not Pause Download", - "download_resumed": "Download Resumed", - "could_not_resume_download": "Could Not Resume Download", "download_completed": "Qaw' Qapla'", "download_failed": "Download Failed", "download_failed_for_item": "{{item}} Qaw'laHbe' - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "Hoch De', ram 'ej vum Qaw' Qapla'", - "failed_to_clean_cache_directory": "Failed to clean cache directory", "could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}", - "go_to_downloads": "Qaw' Doch yIghoS", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "yISam...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Chromecast tlhol ret qonlaHbe'", "message_from_server": "Ho'Do' veS jach: {{message}}", "next_episode": "wej HemHom", - "refresh_tracks": "ret yIchu'qa'", - "audio_tracks": "QoQ ret:", - "playback_state": "tlhol mIw:", - "index": "nem:", "continue_watching": "tlhol yIHaDqa'", "go_back": "Go Back", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "latlh yIHoch", "show_less": "Hom yIHoch", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "wej", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/tr.json b/translations/tr.json index 75837bb9..1600ebc1 100644 --- a/translations/tr.json +++ b/translations/tr.json @@ -261,43 +261,6 @@ "None": "Yok", "OnlyForced": "Sadece Zorunlu" }, - "text_color": "Metin Rengi", - "background_color": "Arkaplan Rengi", - "outline_color": "Kenarlık Rengi", - "outline_thickness": "Kenarlık kalınlığı", - "background_opacity": "Arkaplan Opaklığı", - "outline_opacity": "Kenarlık Opaklığı", - "bold_text": "Kalın Metin", - "colors": { - "Black": "Siyah", - "Gray": "Gri", - "Silver": "Gümüş", - "White": "Beyaz", - "Maroon": "Kestane", - "Red": "Kırmızı", - "Fuchsia": "Fuşya", - "Yellow": "Sarı", - "Olive": "Zeytin yeşili", - "Green": "Yeşil", - "Teal": "Deniz mavisi", - "Lime": "Limon", - "Purple": "Mor", - "Navy": "Lacivert", - "Blue": "Mavi", - "Aqua": "Açık Mavi" - }, - "thickness": { - "None": "Hiçbiri", - "Thin": "İnce", - "Normal": "Normal", - "Thick": "Kalın" - }, - "subtitle_color": "Altyazı Rengi", - "subtitle_background_color": "Arkaplan Rengi", - "subtitle_font": "Altyazı Yazı Tipi", - "ksplayer_title": "KSPlayer Ayarları", - "hardware_decode": "Donanımsal Kod Çözme", - "hardware_decode_description": "Video kod çözme için donanımsal hızlandırma kullan. Oynatma sorunları yaşıyorsanız devre dışı bırakın.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Altyazı Ayarları", - "hint": "VLC oynatıcı için altyazı görünümünü değiştirin. Değişiklikler bir sonraki oynatmada etkili olacak.", - "text_color": "Metin Rengi", - "background_color": "Arkaplan Rengi", - "background_opacity": "Arkaplan Opaklığı", - "outline_color": "Kenarlık Rengi", - "outline_opacity": "Kenarlık Opaklığı", - "outline_thickness": "Kenarlık Kalınlığı", - "bold": "Kalın Metin", - "margin": "Alt Kenar Boşluğu" - }, - "video_player": { - "title": "Video oynatıcısı", - "video_player": "Video oynatıcısı", - "video_player_description": "iOS'da hangi video oynatıcının kullanılacağını seçin.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Diğer", "video_orientation": "Video Yönü", @@ -351,11 +295,6 @@ "UNKNOWN": "Bilinmeyen" }, "safe_area_in_controls": "Kontrollerde Güvenli Alan", - "video_player": "Video player", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Deneysel + PiP)" - }, "show_custom_menu_links": "Özel Menü Bağlantılarını Göster", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "Kütüphaneleri Gizle", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "En Fazla Otomatik Oynatılacak Bölüm Sayısı", "disabled": "Devre dışı" }, - "downloads": { - "downloads_title": "İndirmeler" - }, "music": { "title": "Müzik", "playback_title": "Oynatma", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Eklentiler", "jellyseerr": { - "jellyseerr_warning": "Bu entegrasyon erken aşamalardadır. Değişiklikler olabilir.", "server_url": "Sunucu URL'si", "server_url_hint": "Örnek: http(s)://your-host.url\n(port gerekiyorsa ekleyin)", "server_url_placeholder": "Jellyseerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Marlin hakkında daha fazla oku.", "save_button": "Kaydet", "toasts": { - "saved": "Kaydedildi", - "refreshed": "Ayarlar sunucudan yeniden alındı" - }, - "refresh_from_server": "Ayarları Sunucudan Yeniden Al" + "saved": "Kaydedildi" + } }, "streamystats": { - "enable_streamystats": "Streamystats'ı Etkinleştir", "disable_streamystats": "Streamystats'ı Devre Dışı Bırak", "enable_search": "Arama için kullan", "url": "URL Adresi", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Streamystats sunucu URL'sini girin. URL, http veya https içermeli ve isteğe bağlı olarak portu içerebilir.", "read_more_about_streamystats": "Streamystats hakkında daha fazla bilgi.", - "save_button": "Kaydet", "save": "Kaydet", "features_title": "Özellikler", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Film Önerileri", "enable_series_recommendations": "Dizi Önerileri", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Ayarları Sunucudan Yeniden Al" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Tüm indirilen dosyaları sil", "music_cache_title": "Müzik Ön Belleği", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Müzik Ön Belleğini Etkinleştir", "clear_music_cache": "Müzik Ön Belleğini Temizle", "music_cache_size": "{{size}} ön belleklendi", "music_cache_cleared": "Müzik ön belleği temizlendi", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Sistem" }, "toasts": { - "error_deleting_files": "Dosyalar silinirken hata oluştu", - "background_downloads_enabled": "Arka plan indirmeleri etkinleştirildi", - "background_downloads_disabled": "Arka plan indirmeleri devre dışı bırakıldı" + "error_deleting_files": "Dosyalar silinirken hata oluştu" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "İndirilenler", "series": "Diziler", "movies": "Filmler", - "queue": "Sıra", "other_media": "Diğer medya", - "queue_hint": "Sıra ve indirmeler uygulama yeniden başlatıldığında kaybolacaktır", - "no_items_in_queue": "Sırada öğe yok", "no_downloaded_items": "İndirilen öğe yok", "delete_all_movies_button": "Tüm Filmleri Sil", "delete_all_series_button": "Tüm Dizileri Sil", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Diziler silinemedi", "deleted_media_successfully": "Diğer medya başarıyla silindi!", "failed_to_delete_media": "Failed to Delete other media", - "download_deleted": "İndirme silindi", "download_cancelled": "İndirme iptal edildi", "could_not_delete_download": "İndirme Silinemedi", - "download_paused": "İndirme Duraklatıldı", - "could_not_pause_download": "İndirme Duraklatılamadı", - "download_resumed": "İndirme Devam Ediyor", - "could_not_resume_download": "İndirme Devam Ettirilemedi", "download_completed": "İndirme tamamlandı", "download_failed": "İndirme başarısız oldu", "download_failed_for_item": "{{item}} için indirme başarısız oldu - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} zaten indiriliyor", "all_files_deleted": "Bütün indirilenler başarıyla silindi", "files_deleted_by_type": "{{count}} {{type}} silindi", - "all_files_folders_and_jobs_deleted_successfully": "Tüm dosyalar, klasörler ve işler başarıyla silindi", - "failed_to_clean_cache_directory": "Önbellek dizini temizlenemedi", "could_not_get_download_url_for_item": "{{itemName}} için indirme URL'si alınamadı", - "go_to_downloads": "İndirmelere git", "file_deleted": "{{item}} silindi" } } @@ -583,16 +495,17 @@ "none": "Hiçbiri", "track": "Parça", "cancel": "Vazgeç", - "stop": "Stop", "delete": "Sil", "ok": "Tamam", "remove": "Kaldır", - "next": "Sonraki", "back": "Geri", "continue": "Devam", "verifying": "Doğrulanıyor...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Ara...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Chromecast için yayın oluşturulamadı", "message_from_server": "Sunucudan mesaj: {{message}}", "next_episode": "Sonraki bölüm", - "refresh_tracks": "Parçaları yenile", - "audio_tracks": "Ses Parçaları:", - "playback_state": "Oynatma Durumu:", - "index": "İndeks:", "continue_watching": "İzlemeye devam et", "go_back": "Geri", "downloaded_file_title": "Bu dosya indirilmiş", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Daha fazla göster", "show_less": "Daha az göster", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Sonraki", @@ -888,13 +798,9 @@ "playlists": "Çalma listeleri", "tracks": "parçalar" }, - "filters": { - "all": "Tümü" - }, "recently_added": "Son Eklenenler", "recently_played": "Son Oynatılanlar", "frequently_played": "Sık Oynatılanlar", - "explore": "Keşfet", "top_tracks": "En Popülar Parçalar", "play": "Oynat", "shuffle": "Karıştır", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/uk.json b/translations/uk.json index 2a2163c5..7be58253 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -261,43 +261,6 @@ "None": "Някий", "OnlyForced": "Виключно Форсовані" }, - "text_color": "Text Color", - "background_color": "Background Color", - "outline_color": "Outline Color", - "outline_thickness": "Outline Thickness", - "background_opacity": "Background Opacity", - "outline_opacity": "Outline Opacity", - "bold_text": "Bold Text", - "colors": { - "Black": "Black", - "Gray": "Gray", - "Silver": "Silver", - "White": "White", - "Maroon": "Maroon", - "Red": "Red", - "Fuchsia": "Fuchsia", - "Yellow": "Yellow", - "Olive": "Olive", - "Green": "Green", - "Teal": "Teal", - "Lime": "Lime", - "Purple": "Purple", - "Navy": "Navy", - "Blue": "Blue", - "Aqua": "Aqua" - }, - "thickness": { - "None": "None", - "Thin": "Thin", - "Normal": "Normal", - "Thick": "Thick" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Інші", "video_orientation": "Орієнтація відео", @@ -351,11 +295,6 @@ "UNKNOWN": "Невідомо" }, "safe_area_in_controls": "Безпечна зона в елементах керування", - "video_player": "Відео плеєр", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimental + PiP)" - }, "show_custom_menu_links": "Показати користувацькі посилання меню", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "Сховати медіатеки", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Max Auto Play Episode Count", "disabled": "Вимкнено" }, - "downloads": { - "downloads_title": "Завантаження" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Плагіни", "jellyseerr": { - "jellyseerr_warning": "Ця інтеграція перебуває на початковій стадії. Очікуйте, що все зміниться.", "server_url": "URL Сервера", "server_url_hint": "Наприклад: http(s)://your-host.url\n(додайте порт якщо необхідно)", "server_url_placeholder": "Jellyseerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Дізнайтеся більше про Marlin.", "save_button": "Зберегти", "toasts": { - "saved": "Збережено", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Збережено" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Видалити усі завантаженні файли", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Системна" }, "toasts": { - "error_deleting_files": "Помилка при видалені файлів", - "background_downloads_enabled": "Завантаження в фоні увімкнене", - "background_downloads_disabled": "Завантаження в фоні вимкнене" + "error_deleting_files": "Помилка при видалені файлів" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Завантаження", "series": "ТБ-Серіали", "movies": "Фільми", - "queue": "Черга", "other_media": "Other media", - "queue_hint": "Черга і завантаження буде втрачене при перезапуску застосунку", - "no_items_in_queue": "Нема елементів в черзі", "no_downloaded_items": "Нема завантажених елементів", "delete_all_movies_button": "Видалити всі Фільми", "delete_all_series_button": "Видалити всі ТБ-Серіали", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Не вдалося видалити всі телесеріали", "deleted_media_successfully": "Deleted other media Successfully!", "failed_to_delete_media": "Failed to Delete other media", - "download_deleted": "Download Deleted", "download_cancelled": "Завантаження скасоване", "could_not_delete_download": "Could Not Delete Download", - "download_paused": "Download Paused", - "could_not_pause_download": "Could Not Pause Download", - "download_resumed": "Download Resumed", - "could_not_resume_download": "Could Not Resume Download", "download_completed": "Завантаження завершено", "download_failed": "Download Failed", "download_failed_for_item": "Не вдалося завантажити {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "Усі файли, папки та завдання успішно видалено", - "failed_to_clean_cache_directory": "Failed to clean cache directory", "could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}", - "go_to_downloads": "Перейти до завантаження", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Шукати...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Не вдалося створити потік для Chromecast", "message_from_server": "Повідомлення від серверу: {{message}}", "next_episode": "Наступний Епізод", - "refresh_tracks": "Оновити доріжки", - "audio_tracks": "Аудіо-доріжки:", - "playback_state": "Стан відтворення:", - "index": "Індекс:", "continue_watching": "Продовжити перегляд", "go_back": "Назад", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Показати більше", "show_less": "Показати менше", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Наступний", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/vi.json b/translations/vi.json index 666cfa9d..7977420b 100644 --- a/translations/vi.json +++ b/translations/vi.json @@ -261,43 +261,6 @@ "None": "Không hiển thị", "OnlyForced": "Bắt buộc" }, - "text_color": "Text Color", - "background_color": "Background Color", - "outline_color": "Outline Color", - "outline_thickness": "Outline Thickness", - "background_opacity": "Background Opacity", - "outline_opacity": "Outline Opacity", - "bold_text": "Bold Text", - "colors": { - "Black": "Black", - "Gray": "Gray", - "Silver": "Silver", - "White": "White", - "Maroon": "Maroon", - "Red": "Red", - "Fuchsia": "Fuchsia", - "Yellow": "Yellow", - "Olive": "Olive", - "Green": "Green", - "Teal": "Teal", - "Lime": "Lime", - "Purple": "Purple", - "Navy": "Navy", - "Blue": "Blue", - "Aqua": "Aqua" - }, - "thickness": { - "None": "Không có", - "Thin": "Thin", - "Normal": "Normal", - "Thick": "Thick" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Khác", "video_orientation": "Hướng video", @@ -351,11 +295,6 @@ "UNKNOWN": "Không rõ" }, "safe_area_in_controls": "Vùng an toàn trong điều khiển", - "video_player": "Trình phát video", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Thử nghiệm + PiP)" - }, "show_custom_menu_links": "Hiện liên kết tùy chỉnh", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "Ẩn thư viện", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Số tập tự chạy tối đa", "disabled": "Đã tắt" }, - "downloads": { - "downloads_title": "Tải xuống" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Plugin", "jellyseerr": { - "jellyseerr_warning": "Tích hợp đang trong giai đoạn thử nghiệm. Nội dung có thể thay đổi.", "server_url": "URL máy chủ", "server_url_hint": "Ví dụ: http(s)://your-host.url (có port nếu cần)", "server_url_placeholder": "Jellyseerr URL...", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Tìm hiểu thêm về Marlin.", "save_button": "Lưu", "toasts": { - "saved": "Đã lưu", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Đã lưu" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Xóa toàn bộ tập tin đã tải", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "Hệ thống" }, "toasts": { - "error_deleting_files": "Lỗi khi xóa tập tin", - "background_downloads_enabled": "Tải trong nền đã bật", - "background_downloads_disabled": "Tải trong nền đã tắt" + "error_deleting_files": "Lỗi khi xóa tập tin" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Tải xuống", "series": "Chương trình TV", "movies": "Phim", - "queue": "Hàng đợi", "other_media": "Other media", - "queue_hint": "Hàng đợi và tải xuống sẽ bị mất khi khởi động lại ứng dụng", - "no_items_in_queue": "Không có mục trong hàng đợi", "no_downloaded_items": "Không có mục đã tải", "delete_all_movies_button": "Xóa tất cả phim", "delete_all_series_button": "Xóa tất cả chương trình TV", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Xóa chương trình TV thất bại", "deleted_media_successfully": "Deleted other media Successfully!", "failed_to_delete_media": "Failed to Delete other media", - "download_deleted": "Download Deleted", "download_cancelled": "Tải xuống bị hủy", "could_not_delete_download": "Could Not Delete Download", - "download_paused": "Download Paused", - "could_not_pause_download": "Could Not Pause Download", - "download_resumed": "Download Resumed", - "could_not_resume_download": "Could Not Resume Download", "download_completed": "Tải xuống hoàn tất", "download_failed": "Download Failed", "download_failed_for_item": "Tải {{item}} thất bại – {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "Đã xóa thành công tất cả tập tin, thư mục và công việc", - "failed_to_clean_cache_directory": "Failed to clean cache directory", "could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}", - "go_to_downloads": "Tới phần tải về", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Tìm...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Không thể tạo luồng cho Chromecast", "message_from_server": "Thông báo từ máy chủ: {{message}}", "next_episode": "Tập tiếp theo", - "refresh_tracks": "Làm mới các track", - "audio_tracks": "Track âm thanh:", - "playback_state": "Trạng thái phát:", - "index": "Chỉ mục:", "continue_watching": "Tiếp tục xem", "go_back": "Quay lại", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Xem thêm", "show_less": "Thu gọn", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Tiếp theo", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", diff --git a/translations/zh.json b/translations/zh.json index 0a68afc4..7c6c4a91 100644 --- a/translations/zh.json +++ b/translations/zh.json @@ -261,43 +261,6 @@ "None": "None", "OnlyForced": "OnlyForced" }, - "text_color": "Text Color", - "background_color": "Background Color", - "outline_color": "Outline Color", - "outline_thickness": "Outline Thickness", - "background_opacity": "Background Opacity", - "outline_opacity": "Outline Opacity", - "bold_text": "Bold Text", - "colors": { - "Black": "Black", - "Gray": "Gray", - "Silver": "Silver", - "White": "White", - "Maroon": "Maroon", - "Red": "Red", - "Fuchsia": "Fuchsia", - "Yellow": "Yellow", - "Olive": "Olive", - "Green": "Green", - "Teal": "Teal", - "Lime": "Lime", - "Purple": "Purple", - "Navy": "Navy", - "Blue": "Blue", - "Aqua": "Aqua" - }, - "thickness": { - "None": "None", - "Thin": "Thin", - "Normal": "Normal", - "Thick": "Thick" - }, - "subtitle_color": "Subtitle Color", - "subtitle_background_color": "Background Color", - "subtitle_font": "Subtitle Font", - "ksplayer_title": "KSPlayer Settings", - "hardware_decode": "Hardware Decoding", - "hardware_decode_description": "Use hardware acceleration for video decoding. Disable if you experience playback issues.", "opensubtitles_title": "OpenSubtitles", "opensubtitles_hint": "Enter your OpenSubtitles API key to enable client-side subtitle search as a fallback when your Jellyfin server doesn't have a subtitle provider configured.", "opensubtitles_api_key": "API Key", @@ -315,25 +278,6 @@ "bottom": "Bottom" } }, - "vlc_subtitles": { - "title": "VLC Subtitle Settings", - "hint": "Customize subtitle appearance for VLC player. Changes take effect on next playback.", - "text_color": "Text Color", - "background_color": "Background Color", - "background_opacity": "Background Opacity", - "outline_color": "Outline Color", - "outline_opacity": "Outline Opacity", - "outline_thickness": "Outline Thickness", - "bold": "Bold Text", - "margin": "Bottom Margin" - }, - "video_player": { - "title": "Video Player", - "video_player": "Video Player", - "video_player_description": "Choose which video player to use on iOS.", - "ksplayer": "KSPlayer", - "vlc": "VLC" - }, "other": { "other_title": "Other", "video_orientation": "Video Orientation", @@ -351,11 +295,6 @@ "UNKNOWN": "Unknown" }, "safe_area_in_controls": "Safe Area in Controls", - "video_player": "Video Player", - "video_players": { - "VLC_3": "VLC 3", - "VLC_4": "VLC 4 (Experimental + PiP)" - }, "show_custom_menu_links": "Show Custom Menu Links", "show_large_home_carousel": "Show Large Home Carousel (beta)", "hide_libraries": "Hide Libraries", @@ -367,9 +306,6 @@ "max_auto_play_episode_count": "Max Auto Play Episode Count", "disabled": "Disabled" }, - "downloads": { - "downloads_title": "Downloads" - }, "music": { "title": "Music", "playback_title": "Playback", @@ -384,7 +320,6 @@ "plugins": { "plugins_title": "Plugins", "jellyseerr": { - "jellyseerr_warning": "This integration is in its early stages. Expect things to change.", "server_url": "Server URL", "server_url_hint": "Example: http(s)://your-host.url\n(add port if required)", "server_url_placeholder": "Seerr URL", @@ -413,23 +348,18 @@ "read_more_about_marlin": "Read More About Marlin.", "save_button": "Save", "toasts": { - "saved": "Saved", - "refreshed": "Settings refreshed from server" - }, - "refresh_from_server": "Refresh Settings from Server" + "saved": "Saved" + } }, "streamystats": { - "enable_streamystats": "Enable Streamystats", "disable_streamystats": "Disable Streamystats", "enable_search": "Use for Search", "url": "URL", "server_url_placeholder": "http(s)://streamystats.example.com", "streamystats_search_hint": "Enter the URL for your Streamystats server. The URL should include http or https and optionally the port.", "read_more_about_streamystats": "Read More About Streamystats.", - "save_button": "Save", "save": "Save", "features_title": "Features", - "home_sections_title": "Home Sections", "enable_movie_recommendations": "Movie Recommendations", "enable_series_recommendations": "Series Recommendations", "enable_promoted_watchlists": "Promoted Watchlists", @@ -445,8 +375,7 @@ "refresh_from_server": "Refresh Settings from Server" }, "kefinTweaks": { - "watchlist_enabler": "Enable our Watchlist integration", - "watchlist_button": "Toggle Watchlist integration" + "watchlist_enabler": "Enable our Watchlist integration" } }, "storage": { @@ -457,7 +386,6 @@ "delete_all_downloaded_files": "Delete All Downloaded Files", "music_cache_title": "Music Cache", "music_cache_description": "Automatically cache songs as you listen for smoother playback and offline support", - "enable_music_cache": "Enable Music Cache", "clear_music_cache": "Clear Music Cache", "music_cache_size": "{{size}} cached", "music_cache_cleared": "Music cache cleared", @@ -467,8 +395,6 @@ "clear_all_cache": "Clear All Cache", "clear_all_cache_confirm": "Clear All Cache?", "clear_all_cache_confirm_desc": "Are you sure you want to clear all cached data? This will clear all cached images, music files, subtitles, and query caches. Your settings and login session will be kept.", - "clear_all_cache_success": "Cache Cleared", - "clear_all_cache_success_desc": "All cache has been cleared successfully.", "clear_all_cache_error_desc": "An error occurred while clearing the cache." }, "intro": { @@ -490,15 +416,12 @@ "system": "System" }, "toasts": { - "error_deleting_files": "Error Deleting Files", - "background_downloads_enabled": "Background downloads enabled", - "background_downloads_disabled": "Background downloads disabled" + "error_deleting_files": "Error Deleting Files" }, "security": { "title": "Security", "inactivity_timeout": { "title": "Inactivity Timeout", - "description": "Auto logout after inactivity", "disabled": "Disabled", "1_minute": "1 minute", "5_minutes": "5 minutes", @@ -518,10 +441,7 @@ "downloads_title": "Downloads", "series": "TV-Series", "movies": "Movies", - "queue": "Queue", "other_media": "Other media", - "queue_hint": "Queue and downloads will be lost on app restart", - "no_items_in_queue": "No Items in Queue", "no_downloaded_items": "No Downloaded Items", "delete_all_movies_button": "Delete All Movies", "delete_all_series_button": "Delete All TV-Series", @@ -546,13 +466,8 @@ "failed_to_delete_all_series": "Failed to Delete All TV-Series", "deleted_media_successfully": "Deleted other media Successfully!", "failed_to_delete_media": "Failed to Delete other media", - "download_deleted": "Download Deleted", "download_cancelled": "Download Cancelled", "could_not_delete_download": "Could Not Delete Download", - "download_paused": "Download Paused", - "could_not_pause_download": "Could Not Pause Download", - "download_resumed": "Download Resumed", - "could_not_resume_download": "Could Not Resume Download", "download_completed": "Download Completed", "download_failed": "Download Failed", "download_failed_for_item": "Download failed for {{item}} - {{error}}", @@ -562,10 +477,7 @@ "item_already_downloading": "{{item}} is already downloading", "all_files_deleted": "All Downloads Deleted Successfully", "files_deleted_by_type": "{{count}} {{type}} deleted", - "all_files_folders_and_jobs_deleted_successfully": "All files, folders, and jobs deleted successfully", - "failed_to_clean_cache_directory": "Failed to clean cache directory", "could_not_get_download_url_for_item": "Could not get download URL for {{itemName}}", - "go_to_downloads": "Go to Downloads", "file_deleted": "{{item}} deleted" } } @@ -583,16 +495,17 @@ "none": "None", "track": "Track", "cancel": "Cancel", - "stop": "Stop", "delete": "Delete", "ok": "OK", "remove": "Remove", - "next": "Next", "back": "Back", "continue": "Continue", "verifying": "Verifying...", "login": "Login", - "refresh": "Refresh" + "episodes": "Episodes", + "movies": "Movies", + "loading": "Loading…", + "seeAll": "See all" }, "search": { "search": "Search...", @@ -691,10 +604,6 @@ "could_not_create_stream_for_chromecast": "Could not create a stream for Chromecast", "message_from_server": "Message from Server: {{message}}", "next_episode": "Next Episode", - "refresh_tracks": "Refresh Tracks", - "audio_tracks": "Audio Tracks:", - "playback_state": "Playback State:", - "index": "Index:", "continue_watching": "Continue Watching", "go_back": "Go Back", "downloaded_file_title": "You have this file downloaded", @@ -723,7 +632,8 @@ "stopPlayback": "Stop Playback", "stopPlayingTitle": "Stop playing \"{{title}}\"?", "stopPlayingConfirm": "Are you sure you want to stop playback?", - "downloaded": "Downloaded" + "downloaded": "Downloaded", + "missing_parameters": "Missing playback parameters" }, "chapters": { "title": "Chapters", @@ -761,7 +671,6 @@ "show_more": "Show More", "show_less": "Show Less", "left": "left", - "more_info": "More Info", "director": "Director", "cast": "Cast", "technical_details": "Technical Details", @@ -784,7 +693,8 @@ "resume_playback": "Resume Playback", "resume_playback_description": "Do you want to continue where you left off or start from the beginning?", "play_from_start": "Play from Start", - "continue_from": "Continue from {{time}}" + "continue_from": "Continue from {{time}}", + "no_data_available": "No data available" }, "live_tv": { "next": "Next", @@ -888,13 +798,9 @@ "playlists": "Playlists", "tracks": "tracks" }, - "filters": { - "all": "All" - }, "recently_added": "Recently Added", "recently_played": "Recently Played", "frequently_played": "Frequently Played", - "explore": "Explore", "top_tracks": "Top Tracks", "play": "Play", "shuffle": "Shuffle", @@ -1028,7 +934,6 @@ "pairing": { "pair_with_phone": "Pair with Phone", "pair_with_phone_title": "Login TV", - "pair_with_phone_description": "Scan the QR code displayed on your TV to log in", "waiting_for_phone": "Waiting for phone...", "scan_with_phone": "Scan with the Streamyfin app on your phone", "logging_in": "Logging in...", From 872d14786eb51fce2f61a47df5d3993cc9df6ee8 Mon Sep 17 00:00:00 2001 From: lance chant <13349722+lancechant@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:59:21 +0200 Subject: [PATCH 09/10] fix: apple top shelf currently cropping images (#1726) Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com> Co-authored-by: Gauvain --- targets/StreamyfinTopShelf/TopShelfProvider.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/StreamyfinTopShelf/TopShelfProvider.swift b/targets/StreamyfinTopShelf/TopShelfProvider.swift index ee73685d..c86e7192 100644 --- a/targets/StreamyfinTopShelf/TopShelfProvider.swift +++ b/targets/StreamyfinTopShelf/TopShelfProvider.swift @@ -65,7 +65,7 @@ final class TopShelfProvider: TVTopShelfContentProvider { let item = TVTopShelfSectionedItem(identifier: cacheItem.id) item.title = cacheItem.title - item.imageShape = .poster + item.imageShape = .hdtv item.displayAction = TVTopShelfAction(url: route) if let playRoute = cacheItem.playRoute, let playURL = URL(string: playRoute) { From df56d62acd82e602f7959680b467115e32396464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Fr=C3=B8ysa?= Date: Wed, 17 Jun 2026 13:26:40 +0200 Subject: [PATCH 10/10] fix(android): hold wake and wifi locks during downloads (#1546) Co-authored-by: Simon Eklundh Co-authored-by: Gauvain --- .../android/src/main/AndroidManifest.xml | 3 ++- .../modules/backgrounddownloader/DownloadService.kt | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/background-downloader/android/src/main/AndroidManifest.xml b/modules/background-downloader/android/src/main/AndroidManifest.xml index 44554032..95d01ff9 100644 --- a/modules/background-downloader/android/src/main/AndroidManifest.xml +++ b/modules/background-downloader/android/src/main/AndroidManifest.xml @@ -2,7 +2,8 @@ - + +